diff --git a/desktop/plugins/network/index.tsx b/desktop/plugins/network/index.tsx index efe9bd0ad..8526924b5 100644 --- a/desktop/plugins/network/index.tsx +++ b/desktop/plugins/network/index.tsx @@ -9,7 +9,7 @@ import {TableHighlightedRows, TableRows, TableBodyRow} from 'flipper'; import {padStart} from 'lodash'; -import React from 'react'; +import React, {createContext} from 'react'; import {MenuItemConstructorOptions} from 'electron'; import { @@ -25,7 +25,7 @@ import { SearchableTable, FlipperPlugin, } from 'flipper'; -import {Request, RequestId, Response} from './types'; +import {Request, RequestId, Response, Route} from './types'; import {convertRequestToCurlCommand, getHeaderValue, decodeBody} from './utils'; import RequestDetails from './RequestDetails'; import {clipboard} from 'electron'; @@ -90,12 +90,27 @@ const TextEllipsis = styled(Text)({ paddingTop: 4, }); +// State management +export interface NetworkRouteManager { + addRoute(): void; + modifyRoute(id: string, routeChange: Partial): void; + removeRoute(id: string): void; +} +const nullNetworkRouteManager: NetworkRouteManager = { + addRoute() {}, + modifyRoute(_id: string, _routeChange: Partial) {}, + removeRoute(_id: string) {}, +}; +export const NetworkRouteContext = createContext( + nullNetworkRouteManager, +); + export default class extends FlipperPlugin { static keyboardActions: Array = ['clear']; static subscribed = []; static defaultPersistedState = { - requests: new Map(), - responses: new Map(), + requests: {}, + responses: {}, }; static metricsReducer(persistedState: PersistedState) { @@ -238,18 +253,20 @@ export default class extends FlipperPlugin { return ( - - {this.renderSidebar()} + + + {this.renderSidebar()} + ); }