Request panel in network panel */ function toggleHTTPCustomRequestPanel() { return ({ dispatch, getState }) => { const state = getState(); const shouldClose = state.ui.networkActionOpen && state.ui.selectedActionBarTabId === PANELS.HTTP_CUSTOM_REQUEST; dispatch({ type: OPEN_ACTION_BAR, open: !shouldClose }); // reset the right clicked request dispatch({ type: RIGHT_CLICK_REQUEST, id: null }); dispatch({ type: SELECT_ACTION_BAR_TAB, id: PANELS.HTTP_CUSTOM_REQUEST, }); }; } /** * Send a new HTTP request using the data in the custom request form. */ function sendHTTPCustomRequest(request) { return async ({ dispatch, getState, connector, commands }) => { if (!request) { return; } // Fetch request headers and post data from the backend, if needed. // This is only needed if we are resending a request without editing. if (request.requestHeadersAvailable || request.requestPostDataAvailable) { await fetchNetworkUpdatePacket(connector.requestData, request, [ "requestHeaders", "requestPostData", ]); // Get the request again, to get all the updated data request = getRequestById(getState(), request.id); } // Send a new HTTP request using the data in the custom request form const data = { cause: request.cause || {}, url: request.url, method: request.method, httpVersion: request.httpVersion, securityFlags: request.securityFlags, }; if (request.requestHeaders) { data.headers = request.requestHeaders.headers; } if (request.requestPostData) { data.body = request.requestPostData.postData?.text; } const { channelId } = await commands.networkCommand.sendHTTPRequest(data); const newRequest = getRequestByChannelId(getState(), channelId); // If the new custom request is available already select the request, else // preselect the request. if (newRequest) { await dispatch(selectRequest(newRequest.id)); } else { await dispatch({ type: PRESELECT_REQUEST, id: channelId, }); } dispatch(openNetworkDetails(true)); }; } module.exports = { openHTTPCustomRequest, toggleHTTPCustomRequestPanel, sendHTTPCustomRequest, }; PK