From 4e333940ec2e3924653a52ed2d5f75e501fafbed Mon Sep 17 00:00:00 2001 From: Jack Kavanagh Date: Fri, 21 Jun 2024 12:13:14 +0200 Subject: [PATCH] export should show on scratchpad (#7571) * export should show on scratchpad * flatten dropdown * fix lint --- packages/insomnia/src/models/workspace.ts | 4 +- .../ui/components/settings/import-export.tsx | 114 ++++++++++-------- 2 files changed, 67 insertions(+), 51 deletions(-) diff --git a/packages/insomnia/src/models/workspace.ts b/packages/insomnia/src/models/workspace.ts index d47159fa20..d60c13bd41 100644 --- a/packages/insomnia/src/models/workspace.ts +++ b/packages/insomnia/src/models/workspace.ts @@ -169,8 +169,8 @@ function expectParentToBeProject(parentId?: string | null) { export const SCRATCHPAD_WORKSPACE_ID = 'wrk_scratchpad'; -export function isScratchpad(workspace: Workspace) { - return workspace._id === SCRATCHPAD_WORKSPACE_ID; +export function isScratchpad(workspace?: Workspace) { + return workspace?._id === SCRATCHPAD_WORKSPACE_ID; } export const scopeToActivity = (scope: WorkspaceScope) => { diff --git a/packages/insomnia/src/ui/components/settings/import-export.tsx b/packages/insomnia/src/ui/components/settings/import-export.tsx index f4996c1c09..b2d486ac39 100644 --- a/packages/insomnia/src/ui/components/settings/import-export.tsx +++ b/packages/insomnia/src/ui/components/settings/import-export.tsx @@ -18,7 +18,6 @@ import { ListWorkspacesLoaderData } from '../../routes/project'; import { useRootLoaderData } from '../../routes/root'; import { UntrackedProjectsLoaderData } from '../../routes/untracked-projects'; import { WorkspaceLoaderData } from '../../routes/workspace'; -import { Dropdown, DropdownItem, DropdownSection, ItemContent } from '../base/dropdown'; import { Icon } from '../icon'; import { showAlert } from '../modals'; import { ExportRequestsModal } from '../modals/export-requests-modal'; @@ -270,8 +269,12 @@ export const ImportExport: FC = ({ hideSettingsModal }) => { exportProjectToFile(projectName, workspacesForActiveProject); hideSettingsModal(); }; - - if (!organizationId || !projectLoaderData?.activeProject) { + const isLoggedIn = userSession.id || organizationId || projectLoaderData?.activeProject; + const isScratchPadWorkspace = isScratchpad(workspaceData?.activeWorkspace); + const hasUntrackedWorkspaces = untrackedWorkspaces.length > 0; + const hasUntrackedProjects = untrackedProjects.length > 0; + const showImportToProject = !isScratchPadWorkspace; + if (!isScratchPadWorkspace && !isLoggedIn) { return

There is no active project. Create a new project to import or export data.

; } @@ -281,48 +284,19 @@ export const ImportExport: FC = ({ hideSettingsModal }) => {
Export
- {workspaceData?.activeWorkspace ? - isScratchpad(workspaceData.activeWorkspace) ? - - : - ( - - Export Data - - } - > - - - setIsExportModalOpen(true)} - /> - - - - - - - ) : ( - - ) - } + {workspaceData?.activeWorkspace ? ( + ) : ( + )}
-
+ {showImportToProject &&
Import
-
- {untrackedProjects.length > 0 &&
+
} + {hasUntrackedProjects &&
Untracked projects ({untrackedProjects.length})

@@ -405,7 +379,7 @@ export const ImportExport: FC = ({ hideSettingsModal }) => { ))}

} - {untrackedWorkspaces.length > 0 && projects.length > 0 &&
+ {hasUntrackedWorkspaces && projects.length > 0 &&
Untracked files ({untrackedWorkspaces.length})

@@ -444,3 +418,45 @@ export const ImportExport: FC = ({ hideSettingsModal }) => { ); }; + +const ExportSection = ({ + workspace, + projectName, + setIsExportModalOpen, + handleExportProjectToFile, +}: { + workspace: Workspace; + projectName: string; + setIsExportModalOpen: (value: boolean) => void; + handleExportProjectToFile: () => void; +}) => { + + if (isScratchpad(workspace)) { + return ( + + ); + } + + return ( + <> + + + + ); + +};