make network plugin running in background
Summary: implements `persistedStateReducer` for the network plugins to merge messages into the persistedState even when the plugin is not running. Reviewed By: danielbuechele Differential Revision: D10256311 fbshipit-source-id: 53011a2123342825e8404b1c2c798aeb550c596d
This commit is contained in:
committed by
Facebook Github Bot
parent
ac7980993c
commit
5adc0d0625
@@ -17,8 +17,9 @@ import {
|
|||||||
PureComponent,
|
PureComponent,
|
||||||
DetailSidebar,
|
DetailSidebar,
|
||||||
styled,
|
styled,
|
||||||
|
SearchableTable,
|
||||||
|
FlipperPlugin,
|
||||||
} from 'flipper';
|
} from 'flipper';
|
||||||
import {FlipperPlugin, SearchableTable} from 'flipper';
|
|
||||||
import RequestDetails from './RequestDetails.js';
|
import RequestDetails from './RequestDetails.js';
|
||||||
import {URL} from 'url';
|
import {URL} from 'url';
|
||||||
|
|
||||||
@@ -115,6 +116,23 @@ export default class extends FlipperPlugin<State, *, PersistedState> {
|
|||||||
static icon = 'internet';
|
static icon = 'internet';
|
||||||
static keyboardActions = ['clear'];
|
static keyboardActions = ['clear'];
|
||||||
|
|
||||||
|
static subscribed = [];
|
||||||
|
|
||||||
|
static persistedStateReducer = (
|
||||||
|
persistedState: PersistedState,
|
||||||
|
data: Request | Response,
|
||||||
|
): PersistedState => {
|
||||||
|
const dataType: 'requests' | 'responses' = data.url
|
||||||
|
? 'requests'
|
||||||
|
: 'responses';
|
||||||
|
return {
|
||||||
|
[dataType]: {
|
||||||
|
...persistedState[dataType],
|
||||||
|
[data.id]: data,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
onKeyboardAction = (action: string) => {
|
onKeyboardAction = (action: string) => {
|
||||||
if (action === 'clear') {
|
if (action === 'clear') {
|
||||||
this.clearLogs();
|
this.clearLogs();
|
||||||
@@ -125,25 +143,6 @@ export default class extends FlipperPlugin<State, *, PersistedState> {
|
|||||||
selectedIds: [],
|
selectedIds: [],
|
||||||
};
|
};
|
||||||
|
|
||||||
init() {
|
|
||||||
this.client.subscribe('newRequest', (request: Request) => {
|
|
||||||
this.props.setPersistedState({
|
|
||||||
requests: {
|
|
||||||
...this.props.persistedState.requests,
|
|
||||||
[request.id]: request,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
||||||
this.client.subscribe('newResponse', (response: Response) => {
|
|
||||||
this.props.setPersistedState({
|
|
||||||
responses: {
|
|
||||||
...this.props.persistedState.responses,
|
|
||||||
[response.id]: response,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
onRowHighlighted = (selectedIds: Array<RequestId>) =>
|
onRowHighlighted = (selectedIds: Array<RequestId>) =>
|
||||||
this.setState({selectedIds});
|
this.setState({selectedIds});
|
||||||
|
|
||||||
@@ -290,7 +289,7 @@ function calculateState(
|
|||||||
nextProps.responses[responseId],
|
nextProps.responses[responseId],
|
||||||
);
|
);
|
||||||
const index = rows.findIndex(
|
const index = rows.findIndex(
|
||||||
r => r.key === nextProps.requests[responseId].id,
|
r => r.key === nextProps.requests[responseId]?.id,
|
||||||
);
|
);
|
||||||
if (index > -1 && newRow) {
|
if (index > -1 && newRow) {
|
||||||
rows[index] = newRow;
|
rows[index] = newRow;
|
||||||
|
|||||||
Reference in New Issue
Block a user