insomnia/packages/insomnia-app/app/ui/components/wrapper.js

701 lines
24 KiB
JavaScript
Raw Normal View History

2017-07-19 04:48:28 +00:00
// @flow
2018-06-25 17:42:50 +00:00
import type { Settings } from '../../models/settings';
import type { Response } from '../../models/response';
import type { OAuth2Token } from '../../models/o-auth-2-token';
import type { Workspace } from '../../models/workspace';
import type {
Request,
RequestAuthentication,
RequestBody,
RequestHeader,
RequestParameter
} from '../../models/request';
2017-07-19 04:48:28 +00:00
import * as React from 'react';
import autobind from 'autobind-decorator';
import classnames from 'classnames';
2018-06-25 17:42:50 +00:00
import { registerModal, showModal } from './modals/index';
import AlertModal from './modals/alert-modal';
import WrapperModal from './modals/wrapper-modal';
2017-09-17 14:04:46 +00:00
import ErrorModal from './modals/error-modal';
import CookiesModal from './modals/cookies-modal';
2017-08-19 22:34:16 +00:00
import CookieModifyModal from '../components/modals/cookie-modify-modal';
import EnvironmentEditModal from './modals/environment-edit-modal';
import GenerateCodeModal from './modals/generate-code-modal';
import LoginModal from './modals/login-modal';
import PaymentNotificationModal from './modals/payment-notification-modal';
import NunjucksModal from './modals/nunjucks-modal';
import PromptModal from './modals/prompt-modal';
import AskModal from './modals/ask-modal';
2017-11-01 12:40:24 +00:00
import SelectModal from './modals/select-modal';
import RequestCreateModal from './modals/request-create-modal';
import RequestPane from './request-pane';
import RequestSwitcherModal from './modals/request-switcher-modal';
import SetupSyncModal from './modals/setup-sync-modal';
import SettingsModal from './modals/settings-modal';
import FilterHelpModal from './modals/filter-help-modal';
import ResponsePane from './response-pane';
import RequestSettingsModal from './modals/request-settings-modal';
import RequestRenderErrorModal from './modals/request-render-error-modal';
import Sidebar from './sidebar/sidebar';
import WorkspaceEnvironmentsEditModal from './modals/workspace-environments-edit-modal';
import WorkspaceSettingsModal from './modals/workspace-settings-modal';
import WorkspaceShareSettingsModal from './modals/workspace-share-settings-modal';
import CodePromptModal from './modals/code-prompt-modal';
import * as models from '../../models/index';
2016-11-26 00:37:59 +00:00
import * as importers from 'insomnia-importers';
2018-06-25 17:42:50 +00:00
import type { CookieJar } from '../../models/cookie-jar';
import type { Environment } from '../../models/environment';
import ErrorBoundary from './error-boundary';
2018-06-25 17:42:50 +00:00
import type { ClientCertificate } from '../../models/client-certificate';
import MoveRequestGroupModal from './modals/move-request-group-modal';
type Props = {
// Helper Functions
handleActivateRequest: Function,
handleSetSidebarFilter: Function,
handleToggleMenuBar: Function,
handleImportFileToWorkspace: Function,
handleImportUriToWorkspace: Function,
handleExportFile: Function,
handleSetActiveWorkspace: Function,
handleSetActiveEnvironment: Function,
handleMoveDoc: Function,
handleCreateRequest: Function,
handleDuplicateRequest: Function,
handleDuplicateRequestGroup: Function,
handleMoveRequestGroup: Function,
handleDuplicateWorkspace: Function,
handleCreateRequestGroup: Function,
handleGenerateCodeForActiveRequest: Function,
handleGenerateCode: Function,
handleCopyAsCurl: Function,
handleCreateRequestForWorkspace: Function,
handleSetRequestPaneRef: Function,
handleSetResponsePaneRef: Function,
handleSetResponsePreviewMode: Function,
handleRender: Function,
handleGetRenderContext: Function,
handleSetResponseFilter: Function,
handleSetActiveResponse: Function,
handleSetSidebarRef: Function,
handleStartDragSidebar: Function,
handleResetDragSidebar: Function,
handleStartDragPaneHorizontal: Function,
handleStartDragPaneVertical: Function,
handleResetDragPaneHorizontal: Function,
handleResetDragPaneVertical: Function,
handleSetRequestGroupCollapsed: Function,
handleSendRequestWithEnvironment: Function,
handleSendAndDownloadRequestWithEnvironment: Function,
handleUpdateRequestMimeType: Function,
// Properties
loadStartTime: number,
isLoading: boolean,
paneWidth: number,
paneHeight: number,
responsePreviewMode: string,
responseFilter: string,
responseFilterHistory: Array<string>,
sidebarWidth: number,
sidebarHidden: boolean,
sidebarFilter: string,
sidebarChildren: Array<Object>,
settings: Settings,
workspaces: Array<Workspace>,
unseenWorkspaces: Array<Workspace>,
workspaceChildren: Array<Object>,
environments: Array<Object>,
activeRequestResponses: Array<Response>,
activeWorkspace: Workspace,
activeCookieJar: CookieJar,
activeEnvironment: Environment | null,
activeWorkspaceClientCertificates: Array<ClientCertificate>,
// Optional
oAuth2Token: ?OAuth2Token,
activeRequest: ?Request,
2018-06-25 17:42:50 +00:00
activeResponse: ?Response
};
type State = {
forceRefreshKey: number
};
2017-07-19 04:48:28 +00:00
const rUpdate = (request, ...args) => {
if (!request) {
throw new Error('Tried to update null request');
}
return models.request.update(request, ...args);
};
2016-11-26 00:37:59 +00:00
const sUpdate = models.settings.update;
2017-07-21 18:59:17 +00:00
@autobind
class Wrapper extends React.PureComponent<Props, State> {
2018-06-25 17:42:50 +00:00
constructor(props: any) {
super(props);
this.state = {
forceRefreshKey: Date.now()
};
}
2016-11-26 00:37:59 +00:00
// Request updaters
2018-06-25 17:42:50 +00:00
async _handleForceUpdateRequest(patch: Object): Promise<Request> {
const newRequest = await rUpdate(this.props.activeRequest, patch);
// Give it a second for the app to render first. If we don't wait, it will refresh
// on the old request and won't catch the newest one.
window.setTimeout(this._forceRequestPaneRefresh, 100);
return newRequest;
}
2018-06-25 17:42:50 +00:00
_handleUpdateRequestBody(body: RequestBody): Promise<Request> {
return rUpdate(this.props.activeRequest, { body });
}
2016-11-28 07:12:17 +00:00
2018-06-25 17:42:50 +00:00
_handleUpdateRequestMethod(method: string): Promise<Request> {
return rUpdate(this.props.activeRequest, { method });
}
2018-06-25 17:42:50 +00:00
_handleUpdateRequestParameters(
parameters: Array<RequestParameter>
): Promise<Request> {
return rUpdate(this.props.activeRequest, { parameters });
}
2018-06-25 17:42:50 +00:00
_handleUpdateRequestAuthentication(
authentication: RequestAuthentication
): Promise<Request> {
return rUpdate(this.props.activeRequest, { authentication });
}
2018-06-25 17:42:50 +00:00
_handleUpdateRequestHeaders(headers: Array<RequestHeader>): Promise<Request> {
return rUpdate(this.props.activeRequest, { headers });
}
2018-06-25 17:42:50 +00:00
_handleForceUpdateRequestHeaders(
headers: Array<RequestHeader>
): Promise<Request> {
return this._handleForceUpdateRequest({ headers });
}
2018-06-25 17:42:50 +00:00
_handleUpdateRequestUrl(url: string): Promise<Request> {
return rUpdate(this.props.activeRequest, { url });
}
2016-11-26 00:37:59 +00:00
// Special request updaters
2018-06-25 17:42:50 +00:00
_handleStartDragSidebar(e: Event): void {
e.preventDefault();
this.props.handleStartDragSidebar();
}
2018-06-25 17:42:50 +00:00
async _handleImport(text: string): Promise<Request | null> {
2016-11-26 00:37:59 +00:00
// Allow user to paste any import file into the url. If it results in
// only one item, it will overwrite the current request.
try {
2018-06-25 17:42:50 +00:00
const { data } = await importers.convert(text);
const { resources } = data;
2016-11-26 00:37:59 +00:00
const r = resources[0];
if (r && r._type === 'request') {
// Only pull fields that we want to update
return this._handleForceUpdateRequest({
2016-11-26 00:37:59 +00:00
url: r.url,
method: r.method,
headers: r.headers,
body: r.body,
authentication: r.authentication,
parameters: r.parameters
2016-11-26 00:37:59 +00:00
});
}
} catch (e) {
// Import failed, that's alright
}
return null;
}
2016-11-26 00:37:59 +00:00
// Settings updaters
2018-06-25 17:42:50 +00:00
_handleUpdateSettingsShowPasswords(
showPasswords: boolean
): Promise<Settings> {
return sUpdate(this.props.settings, { showPasswords });
}
2018-06-25 17:42:50 +00:00
_handleUpdateSettingsUseBulkHeaderEditor(
useBulkHeaderEditor: boolean
): Promise<Settings> {
return sUpdate(this.props.settings, { useBulkHeaderEditor });
}
2016-11-26 00:37:59 +00:00
// Other Helpers
2018-06-25 17:42:50 +00:00
_handleImportFile(): void {
this.props.handleImportFileToWorkspace(this.props.activeWorkspace._id);
}
2018-06-25 17:42:50 +00:00
_handleImportUri(uri: string): void {
this.props.handleImportUriToWorkspace(this.props.activeWorkspace._id, uri);
}
2018-06-25 17:42:50 +00:00
_handleExportWorkspaceToFile(): void {
this.props.handleExportFile(this.props.activeWorkspace._id);
}
2018-06-25 17:42:50 +00:00
_handleSetActiveResponse(responseId: string | null): void {
2017-07-19 04:48:28 +00:00
if (!this.props.activeRequest) {
console.warn('Tried to set active response when request not active');
return;
}
2018-06-25 17:42:50 +00:00
this.props.handleSetActiveResponse(
this.props.activeRequest._id,
responseId
);
}
2016-12-07 17:57:01 +00:00
2018-06-25 17:42:50 +00:00
_handleShowEnvironmentsModal(): void {
showModal(WorkspaceEnvironmentsEditModal, this.props.activeWorkspace);
}
2016-11-26 00:37:59 +00:00
2018-06-25 17:42:50 +00:00
_handleShowCookiesModal(): void {
showModal(CookiesModal, this.props.activeWorkspace);
}
2018-06-25 17:42:50 +00:00
_handleShowModifyCookieModal(cookie: Object): void {
2017-08-22 22:30:57 +00:00
showModal(CookieModifyModal, cookie);
2017-08-19 22:34:16 +00:00
}
2018-06-25 17:42:50 +00:00
_handleShowRequestSettingsModal(): void {
showModal(RequestSettingsModal, { request: this.props.activeRequest });
}
2018-06-25 17:42:50 +00:00
_handleDeleteResponses(): void {
2017-07-19 04:48:28 +00:00
if (!this.props.activeRequest) {
console.warn('Tried to delete responses when request not active');
return;
}
models.response.removeForRequest(this.props.activeRequest._id);
this._handleSetActiveResponse(null);
}
2018-06-25 17:42:50 +00:00
async _handleDeleteResponse(response: Response): Promise<void> {
2017-06-12 21:48:17 +00:00
if (response) {
await models.response.remove(response);
}
// Also unset active response it's the one we're deleting
2018-06-25 17:42:50 +00:00
if (
this.props.activeResponse &&
this.props.activeResponse._id === response._id
) {
2017-06-12 21:48:17 +00:00
this._handleSetActiveResponse(null);
}
}
2018-06-25 17:42:50 +00:00
async _handleRemoveActiveWorkspace(): Promise<void> {
const { workspaces, activeWorkspace } = this.props;
if (workspaces.length <= 1) {
showModal(AlertModal, {
title: 'Deleting Last Workspace',
2018-06-25 17:42:50 +00:00
message:
'Since you deleted your only workspace, a new one has been created for you.'
});
2018-06-25 17:42:50 +00:00
models.workspace.create({ name: 'Insomnia' });
}
2017-07-19 04:48:28 +00:00
await models.workspace.remove(activeWorkspace);
}
2018-06-25 17:42:50 +00:00
_handleSendRequestWithActiveEnvironment(): void {
const {
activeRequest,
activeEnvironment,
handleSendRequestWithEnvironment
} = this.props;
2016-11-26 00:37:59 +00:00
const activeRequestId = activeRequest ? activeRequest._id : 'n/a';
2018-06-25 17:42:50 +00:00
const activeEnvironmentId = activeEnvironment
? activeEnvironment._id
: 'n/a';
2016-11-26 00:37:59 +00:00
handleSendRequestWithEnvironment(activeRequestId, activeEnvironmentId);
}
2016-11-25 23:09:17 +00:00
2018-06-25 17:42:50 +00:00
_handleSendAndDownloadRequestWithActiveEnvironment(filename: string): void {
const {
activeRequest,
activeEnvironment,
handleSendAndDownloadRequestWithEnvironment
} = this.props;
const activeRequestId = activeRequest ? activeRequest._id : 'n/a';
2018-06-25 17:42:50 +00:00
const activeEnvironmentId = activeEnvironment
? activeEnvironment._id
: 'n/a';
handleSendAndDownloadRequestWithEnvironment(
activeRequestId,
activeEnvironmentId,
filename
);
}
2018-06-25 17:42:50 +00:00
_handleSetPreviewMode(previewMode: string): void {
2016-11-25 23:09:17 +00:00
const activeRequest = this.props.activeRequest;
const activeRequestId = activeRequest ? activeRequest._id : 'n/a';
this.props.handleSetResponsePreviewMode(activeRequestId, previewMode);
}
2016-11-25 23:09:17 +00:00
2018-06-25 17:42:50 +00:00
_handleSetResponseFilter(filter: string): void {
2016-11-25 23:09:17 +00:00
const activeRequest = this.props.activeRequest;
const activeRequestId = activeRequest ? activeRequest._id : 'n/a';
this.props.handleSetResponseFilter(activeRequestId, filter);
}
2016-11-25 23:09:17 +00:00
2018-06-25 17:42:50 +00:00
_forceRequestPaneRefresh(): void {
this.setState({ forceRefreshKey: Date.now() });
}
2016-11-25 23:09:17 +00:00
2018-06-25 17:42:50 +00:00
render() {
2016-11-25 23:09:17 +00:00
const {
activeEnvironment,
activeRequest,
activeWorkspace,
2017-08-22 22:30:57 +00:00
activeCookieJar,
2017-07-17 18:20:38 +00:00
activeRequestResponses,
activeResponse,
activeWorkspaceClientCertificates,
2016-11-25 23:09:17 +00:00
environments,
handleActivateRequest,
2016-11-25 23:09:17 +00:00
handleCreateRequest,
handleCreateRequestForWorkspace,
handleCreateRequestGroup,
handleDuplicateRequest,
2016-11-28 07:12:17 +00:00
handleDuplicateRequestGroup,
handleMoveRequestGroup,
2016-11-25 23:09:17 +00:00
handleExportFile,
2017-06-13 20:45:15 +00:00
handleMoveDoc,
handleResetDragPaneHorizontal,
handleResetDragPaneVertical,
handleResetDragSidebar,
handleSetActiveEnvironment,
handleSetActiveWorkspace,
handleSetRequestGroupCollapsed,
2016-11-25 23:09:17 +00:00
handleSetRequestPaneRef,
handleSetResponsePaneRef,
handleSetSidebarRef,
handleStartDragPaneHorizontal,
handleStartDragPaneVertical,
handleSetSidebarFilter,
handleToggleMenuBar,
2017-02-13 08:12:02 +00:00
handleRender,
handleGetRenderContext,
2017-06-07 00:07:09 +00:00
handleDuplicateWorkspace,
handleGenerateCodeForActiveRequest,
2016-11-28 07:12:17 +00:00
handleGenerateCode,
handleCopyAsCurl,
handleUpdateRequestMimeType,
isLoading,
loadStartTime,
paneWidth,
paneHeight,
responseFilter,
responseFilterHistory,
responsePreviewMode,
oAuth2Token,
settings,
2016-11-25 23:09:17 +00:00
sidebarChildren,
sidebarFilter,
sidebarHidden,
sidebarWidth,
workspaceChildren,
2017-07-27 22:59:07 +00:00
workspaces,
unseenWorkspaces
2016-11-25 23:09:17 +00:00
} = this.props;
const realSidebarWidth = sidebarHidden ? 0 : sidebarWidth;
2018-06-25 17:42:50 +00:00
const columns = `${realSidebarWidth}rem 0 minmax(0, ${paneWidth}fr) 0 minmax(0, ${1 -
paneWidth}fr)`;
const rows = `minmax(0, ${paneHeight}fr) 0 minmax(0, ${1 - paneHeight}fr)`;
2016-11-25 23:09:17 +00:00
return [
<div key="modals" className="modals">
<ErrorBoundary showAlert>
2018-06-25 17:42:50 +00:00
<AlertModal ref={registerModal} />
<ErrorModal ref={registerModal} />
<PromptModal ref={registerModal} />
<WrapperModal ref={registerModal} />
<LoginModal ref={registerModal} />
<AskModal ref={registerModal} />
<SelectModal ref={registerModal} />
<RequestCreateModal ref={registerModal} />
<PaymentNotificationModal ref={registerModal} />
<FilterHelpModal ref={registerModal} />
<RequestRenderErrorModal ref={registerModal} />
<CodePromptModal
ref={registerModal}
handleRender={handleRender}
handleGetRenderContext={handleGetRenderContext}
nunjucksPowerUserMode={settings.nunjucksPowerUserMode}
editorFontSize={settings.editorFontSize}
editorIndentSize={settings.editorIndentSize}
editorKeyMap={settings.editorKeyMap}
editorLineWrapping={settings.editorLineWrapping}
/>
<RequestSettingsModal
ref={registerModal}
editorFontSize={settings.editorFontSize}
editorIndentSize={settings.editorIndentSize}
editorKeyMap={settings.editorKeyMap}
editorLineWrapping={settings.editorLineWrapping}
handleRender={handleRender}
handleGetRenderContext={handleGetRenderContext}
nunjucksPowerUserMode={settings.nunjucksPowerUserMode}
workspaces={workspaces}
/>
<CookiesModal
2017-08-19 22:34:16 +00:00
handleShowModifyCookieModal={this._handleShowModifyCookieModal}
2017-08-22 22:30:57 +00:00
handleRender={handleRender}
nunjucksPowerUserMode={settings.nunjucksPowerUserMode}
2017-08-19 22:34:16 +00:00
ref={registerModal}
workspace={activeWorkspace}
2017-08-22 22:30:57 +00:00
cookieJar={activeCookieJar}
2017-08-19 22:34:16 +00:00
/>
2017-08-23 03:33:07 +00:00
2017-08-19 22:34:16 +00:00
<CookieModifyModal
handleRender={handleRender}
handleGetRenderContext={handleGetRenderContext}
nunjucksPowerUserMode={settings.nunjucksPowerUserMode}
ref={registerModal}
2017-08-22 23:54:31 +00:00
cookieJar={activeCookieJar}
workspace={activeWorkspace}
/>
2017-08-23 03:33:07 +00:00
<NunjucksModal
uniqueKey={`key::${this.state.forceRefreshKey}`}
ref={registerModal}
handleRender={handleRender}
handleGetRenderContext={handleGetRenderContext}
workspace={activeWorkspace}
/>
2018-06-25 17:42:50 +00:00
<MoveRequestGroupModal ref={registerModal} workspaces={workspaces} />
<WorkspaceSettingsModal
ref={registerModal}
clientCertificates={activeWorkspaceClientCertificates}
workspace={activeWorkspace}
editorFontSize={settings.editorFontSize}
editorIndentSize={settings.editorIndentSize}
editorKeyMap={settings.editorKeyMap}
editorLineWrapping={settings.editorLineWrapping}
handleRender={handleRender}
handleGetRenderContext={handleGetRenderContext}
nunjucksPowerUserMode={settings.nunjucksPowerUserMode}
handleRemoveWorkspace={this._handleRemoveActiveWorkspace}
2017-06-07 00:07:09 +00:00
handleDuplicateWorkspace={handleDuplicateWorkspace}
/>
<WorkspaceShareSettingsModal
ref={registerModal}
workspace={activeWorkspace}
/>
<GenerateCodeModal
ref={registerModal}
environmentId={activeEnvironment ? activeEnvironment._id : 'n/a'}
editorFontSize={settings.editorFontSize}
editorIndentSize={settings.editorIndentSize}
editorKeyMap={settings.editorKeyMap}
/>
<SettingsModal
ref={registerModal}
handleExportWorkspaceToFile={this._handleExportWorkspaceToFile}
handleExportAllToFile={handleExportFile}
handleImportFile={this._handleImportFile}
handleImportUri={this._handleImportUri}
handleToggleMenuBar={handleToggleMenuBar}
settings={settings}
/>
<RequestSwitcherModal
ref={registerModal}
workspaces={workspaces}
workspaceChildren={workspaceChildren}
workspaceId={activeWorkspace._id}
2018-06-25 17:42:50 +00:00
activeRequestParentId={
activeRequest ? activeRequest.parentId : activeWorkspace._id
}
activateRequest={handleActivateRequest}
handleSetActiveWorkspace={handleSetActiveWorkspace}
/>
<EnvironmentEditModal
ref={registerModal}
editorFontSize={settings.editorFontSize}
editorIndentSize={settings.editorIndentSize}
editorKeyMap={settings.editorKeyMap}
lineWrapping={settings.editorLineWrapping}
onChange={models.requestGroup.update}
render={handleRender}
getRenderContext={handleGetRenderContext}
nunjucksPowerUserMode={settings.nunjucksPowerUserMode}
/>
2018-06-25 17:42:50 +00:00
<SetupSyncModal ref={registerModal} workspace={activeWorkspace} />
<WorkspaceEnvironmentsEditModal
ref={registerModal}
onChange={models.workspace.update}
lineWrapping={settings.editorLineWrapping}
editorFontSize={settings.editorFontSize}
editorIndentSize={settings.editorIndentSize}
editorKeyMap={settings.editorKeyMap}
2018-06-25 17:42:50 +00:00
activeEnvironmentId={
activeEnvironment ? activeEnvironment._id : null
}
render={handleRender}
getRenderContext={handleGetRenderContext}
nunjucksPowerUserMode={settings.nunjucksPowerUserMode}
/>
</ErrorBoundary>
</div>,
2018-06-25 17:42:50 +00:00
<div
key="wrapper"
id="wrapper"
className={classnames('wrapper', {
'wrapper--vertical': settings.forceVerticalLayout
})}
style={{ gridTemplateColumns: columns, gridTemplateRows: rows }}>
<ErrorBoundary showAlert>
<Sidebar
ref={handleSetSidebarRef}
showEnvironmentsModal={this._handleShowEnvironmentsModal}
showCookiesModal={this._handleShowCookiesModal}
handleActivateRequest={handleActivateRequest}
handleChangeFilter={handleSetSidebarFilter}
handleImportFile={this._handleImportFile}
handleExportFile={handleExportFile}
handleSetActiveWorkspace={handleSetActiveWorkspace}
handleDuplicateRequest={handleDuplicateRequest}
handleGenerateCode={handleGenerateCode}
handleCopyAsCurl={handleCopyAsCurl}
handleDuplicateRequestGroup={handleDuplicateRequestGroup}
handleMoveRequestGroup={handleMoveRequestGroup}
handleSetActiveEnvironment={handleSetActiveEnvironment}
moveDoc={handleMoveDoc}
handleSetRequestGroupCollapsed={handleSetRequestGroupCollapsed}
activeRequest={activeRequest}
activeEnvironment={activeEnvironment}
handleCreateRequest={handleCreateRequest}
handleCreateRequestGroup={handleCreateRequestGroup}
filter={sidebarFilter || ''}
hidden={sidebarHidden || false}
workspace={activeWorkspace}
unseenWorkspaces={unseenWorkspaces}
childObjects={sidebarChildren}
width={sidebarWidth}
isLoading={isLoading}
workspaces={workspaces}
environments={environments}
/>
</ErrorBoundary>
<div className="drag drag--sidebar">
2018-06-25 17:42:50 +00:00
<div
onDoubleClick={handleResetDragSidebar}
onMouseDown={this._handleStartDragSidebar}
/>
</div>
<ErrorBoundary showAlert>
<RequestPane
ref={handleSetRequestPaneRef}
handleImportFile={this._handleImportFile}
request={activeRequest}
workspace={activeWorkspace}
settings={settings}
environmentId={activeEnvironment ? activeEnvironment._id : ''}
oAuth2Token={oAuth2Token}
forceUpdateRequest={this._handleForceUpdateRequest}
handleCreateRequest={handleCreateRequestForWorkspace}
handleGenerateCode={handleGenerateCodeForActiveRequest}
handleImport={this._handleImport}
handleRender={handleRender}
handleGetRenderContext={handleGetRenderContext}
updateRequestBody={this._handleUpdateRequestBody}
forceUpdateRequestHeaders={this._handleForceUpdateRequestHeaders}
updateRequestUrl={this._handleUpdateRequestUrl}
updateRequestMethod={this._handleUpdateRequestMethod}
updateRequestParameters={this._handleUpdateRequestParameters}
2018-06-25 17:42:50 +00:00
updateRequestAuthentication={
this._handleUpdateRequestAuthentication
}
updateRequestHeaders={this._handleUpdateRequestHeaders}
updateRequestMimeType={handleUpdateRequestMimeType}
2018-06-25 17:42:50 +00:00
updateSettingsShowPasswords={
this._handleUpdateSettingsShowPasswords
}
updateSettingsUseBulkHeaderEditor={
this._handleUpdateSettingsUseBulkHeaderEditor
}
forceRefreshCounter={this.state.forceRefreshKey}
handleSend={this._handleSendRequestWithActiveEnvironment}
2018-06-25 17:42:50 +00:00
handleSendAndDownload={
this._handleSendAndDownloadRequestWithActiveEnvironment
}
/>
</ErrorBoundary>
<div className="drag drag--pane-horizontal">
<div
onMouseDown={handleStartDragPaneHorizontal}
2018-06-25 17:42:50 +00:00
onDoubleClick={handleResetDragPaneHorizontal}
/>
</div>
<div className="drag drag--pane-vertical">
<div
onMouseDown={handleStartDragPaneVertical}
2018-06-25 17:42:50 +00:00
onDoubleClick={handleResetDragPaneVertical}
/>
</div>
<ErrorBoundary showAlert>
<ResponsePane
ref={handleSetResponsePaneRef}
request={activeRequest}
responses={activeRequestResponses}
response={activeResponse}
editorFontSize={settings.editorFontSize}
editorIndentSize={settings.editorIndentSize}
editorKeyMap={settings.editorKeyMap}
editorLineWrapping={settings.editorLineWrapping}
previewMode={responsePreviewMode}
filter={responseFilter}
filterHistory={responseFilterHistory}
loadStartTime={loadStartTime}
showCookiesModal={this._handleShowCookiesModal}
handleShowRequestSettings={this._handleShowRequestSettingsModal}
handleSetActiveResponse={this._handleSetActiveResponse}
handleSetPreviewMode={this._handleSetPreviewMode}
handleDeleteResponses={this._handleDeleteResponses}
handleDeleteResponse={this._handleDeleteResponse}
handleSetFilter={this._handleSetResponseFilter}
/>
</ErrorBoundary>
2016-11-25 23:09:17 +00:00
</div>
];
2016-11-25 23:09:17 +00:00
}
}
export default Wrapper;