From 6a8d7da15b479325aff96dd295cb489ea81ffccc Mon Sep 17 00:00:00 2001 From: Kent Wang Date: Mon, 22 Jun 2026 13:22:47 +0800 Subject: [PATCH] modify the workspace dropdown for scratch pad workspace (#10131) --- .../dropdowns/sidebar-workspace-dropdown.tsx | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/packages/insomnia/src/ui/components/dropdowns/sidebar-workspace-dropdown.tsx b/packages/insomnia/src/ui/components/dropdowns/sidebar-workspace-dropdown.tsx index 325a9eabb1..86b2cf8b7c 100644 --- a/packages/insomnia/src/ui/components/dropdowns/sidebar-workspace-dropdown.tsx +++ b/packages/insomnia/src/ui/components/dropdowns/sidebar-workspace-dropdown.tsx @@ -105,6 +105,7 @@ export const SidebarWorkspaceDropdown = ({ const workspaceName = workspace.name; const projectName = project.name || getProductName(); const isCollection = workspace.scope === 'collection'; + const isScratchpadWorkspace = models.workspace.isScratchpad(workspace); const createRequest = (requestType: CreateRequestType) => { newRequestFetcher.submit({ @@ -321,7 +322,38 @@ export const SidebarWorkspaceDropdown = ({ ], }; - const allSections: ActionSection[] = [...createSections, actionSection]; + const scratchpadActionList: ActionSection = { + name: 'Actions', + id: 'Actions', + icon: 'cog', + items: [ + { + id: 'Export', + name: 'Export', + icon: 'file-export', + action: () => { + window.main.trackAnalyticsEvent({ + event: AnalyticsEvent.exportStarted, + properties: { source: `${workspace.scope}-list` }, + }); + if (workspace.scope === 'mock-server') { + return exportMockServerToFile(workspace); + } + if (workspace.scope === 'environment') { + return exportGlobalEnvironmentToFile(workspace); + } + if (workspace.scope === 'mcp') { + return exportMcpClientToFile(workspace); + } + return setIsExportModalOpen(true); + }, + }, + ], + }; + + const allSections: ActionSection[] = isScratchpadWorkspace + ? [...createSections, scratchpadActionList] + : [...createSections, actionSection]; return (