зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1554883 - Refactor requests reducer to remove disabled complexity eslint rule. r=pbro
Differential Revision: https://phabricator.services.mozilla.com/D39472 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
04c28108fc
Коммит
d9dcefe8ce
|
@ -46,62 +46,16 @@ function Requests() {
|
|||
* This reducer is responsible for maintaining list of request
|
||||
* within the Network panel.
|
||||
*/
|
||||
/* eslint-disable complexity */
|
||||
function requestsReducer(state = Requests(), action) {
|
||||
switch (action.type) {
|
||||
// Appending new request into the list/map.
|
||||
case ADD_REQUEST: {
|
||||
const nextState = { ...state };
|
||||
|
||||
const newRequest = {
|
||||
id: action.id,
|
||||
...action.data,
|
||||
urlDetails: getUrlDetails(action.data.url),
|
||||
};
|
||||
|
||||
nextState.requests = mapSet(state.requests, newRequest.id, newRequest);
|
||||
|
||||
// Update the started/ended timestamps.
|
||||
const { startedMillis } = action.data;
|
||||
if (startedMillis < state.firstStartedMillis) {
|
||||
nextState.firstStartedMillis = startedMillis;
|
||||
}
|
||||
if (startedMillis > state.lastEndedMillis) {
|
||||
nextState.lastEndedMillis = startedMillis;
|
||||
}
|
||||
|
||||
// Select the request if it was preselected and there is no other selection.
|
||||
if (state.preselectedId && state.preselectedId === action.id) {
|
||||
nextState.selectedId = state.selectedId || state.preselectedId;
|
||||
nextState.preselectedId = null;
|
||||
}
|
||||
|
||||
return nextState;
|
||||
return addRequest(state, action);
|
||||
}
|
||||
|
||||
// Update an existing request (with received data).
|
||||
case UPDATE_REQUEST: {
|
||||
const { requests, lastEndedMillis } = state;
|
||||
|
||||
let request = requests.get(action.id);
|
||||
if (!request) {
|
||||
return state;
|
||||
}
|
||||
|
||||
request = {
|
||||
...request,
|
||||
...processNetworkUpdates(action.data, request),
|
||||
};
|
||||
const requestEndTime =
|
||||
request.startedMillis +
|
||||
(request.eventTimings ? request.eventTimings.totalTime : 0);
|
||||
|
||||
return {
|
||||
...state,
|
||||
requests: mapSet(state.requests, action.id, request),
|
||||
lastEndedMillis:
|
||||
requestEndTime > lastEndedMillis ? requestEndTime : lastEndedMillis,
|
||||
};
|
||||
return updateRequest(state, action);
|
||||
}
|
||||
|
||||
// Remove all requests in the list. Create fresh new state
|
||||
|
@ -135,8 +89,7 @@ function requestsReducer(state = Requests(), action) {
|
|||
}
|
||||
|
||||
case RIGHT_CLICK_REQUEST: {
|
||||
const { requests } = state;
|
||||
const clickedRequest = requests.get(action.id);
|
||||
const clickedRequest = state.requests.get(action.id);
|
||||
return {
|
||||
...state,
|
||||
clickedRequest,
|
||||
|
@ -184,10 +137,62 @@ function requestsReducer(state = Requests(), action) {
|
|||
return state;
|
||||
}
|
||||
}
|
||||
/* eslint-enable complexity */
|
||||
|
||||
// Helpers
|
||||
|
||||
function addRequest(state, action) {
|
||||
const nextState = { ...state };
|
||||
|
||||
const newRequest = {
|
||||
id: action.id,
|
||||
...action.data,
|
||||
urlDetails: getUrlDetails(action.data.url),
|
||||
};
|
||||
|
||||
nextState.requests = mapSet(state.requests, newRequest.id, newRequest);
|
||||
|
||||
// Update the started/ended timestamps.
|
||||
const { startedMillis } = action.data;
|
||||
if (startedMillis < state.firstStartedMillis) {
|
||||
nextState.firstStartedMillis = startedMillis;
|
||||
}
|
||||
if (startedMillis > state.lastEndedMillis) {
|
||||
nextState.lastEndedMillis = startedMillis;
|
||||
}
|
||||
|
||||
// Select the request if it was preselected and there is no other selection.
|
||||
if (state.preselectedId && state.preselectedId === action.id) {
|
||||
nextState.selectedId = state.selectedId || state.preselectedId;
|
||||
nextState.preselectedId = null;
|
||||
}
|
||||
|
||||
return nextState;
|
||||
}
|
||||
|
||||
function updateRequest(state, action) {
|
||||
const { requests, lastEndedMillis } = state;
|
||||
|
||||
let request = requests.get(action.id);
|
||||
if (!request) {
|
||||
return state;
|
||||
}
|
||||
|
||||
request = {
|
||||
...request,
|
||||
...processNetworkUpdates(action.data, request),
|
||||
};
|
||||
const requestEndTime =
|
||||
request.startedMillis +
|
||||
(request.eventTimings ? request.eventTimings.totalTime : 0);
|
||||
|
||||
return {
|
||||
...state,
|
||||
requests: mapSet(state.requests, action.id, request),
|
||||
lastEndedMillis:
|
||||
requestEndTime > lastEndedMillis ? requestEndTime : lastEndedMillis,
|
||||
};
|
||||
}
|
||||
|
||||
function cloneRequest(state, id) {
|
||||
const { requests } = state;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче