Skip to content

Commit 9b380af

Browse files
committed
feat: add source tracking to new workspace modal actions in various components
1 parent b237d93 commit 9b380af

5 files changed

Lines changed: 17 additions & 12 deletions

File tree

packages/insomnia/src/routes/organization.$organizationId.project.$projectId._index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ const Component = () => {
342342
selectedCollectionId={selectedCollectionId}
343343
onSelectedCollectionChange={setSelectedCollectionId}
344344
onCreateCollection={() => {
345-
setNewWorkspaceModalState({ scope: 'collection', isOpen: true, redirect: false });
345+
setNewWorkspaceModalState({ scope: 'collection', isOpen: true, redirect: false, source: 'home-page' });
346346
}}
347347
/>
348348
</div>

packages/insomnia/src/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId.spec.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1043,6 +1043,7 @@ const Component = ({ params }: Route.ComponentProps) => {
10431043
storageRules={storageRules}
10441044
scope="mock-server"
10451045
sourceApiSpec={apiSpec}
1046+
source="design-view"
10461047
onOpenChange={setNewMockServerModalOpen}
10471048
/>
10481049
)}

packages/insomnia/src/routes/organization.$organizationId.project.$projectId.workspace.new.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ async function createMockServer(
389389
generation_from: workspaceData.apiSpecContents ? 'design_doc' : workspaceData.mockServerSpecSource || '',
390390
dynamic_responses: workspaceData.mockServerDynamicResponses ? 'yes' : 'no',
391391
generation_duration_seconds: generationDurationMs / 1000,
392-
source: source || 'menu',
392+
...(source && { source }),
393393
},
394394
});
395395

packages/insomnia/src/ui/components/dropdowns/sidebar-project-dropdown.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ export const ProjectDropdown: FC<Props> = ({ project, organizationId, storageRul
6565
const [newWorkspaceModalState, setNewWorkspaceModalState] = useState<{
6666
scope: WorkspaceScope;
6767
isOpen: boolean;
68+
source?: string;
6869
} | null>({
6970
scope: 'collection',
7071
isOpen: false,
@@ -79,13 +80,13 @@ export const ProjectDropdown: FC<Props> = ({ project, organizationId, storageRul
7980
const isGitProjectInconsistent = models.project.isGitProject(project) && !storageRules.enableGitSync;
8081
const isProjectInconsistent = isRemoteProjectInconsistent || isLocalProjectInconsistent || isGitProjectInconsistent;
8182

82-
const createNewCollection = () => setNewWorkspaceModalState({ scope: 'collection', isOpen: true });
83-
const createNewDocument = () => setNewWorkspaceModalState({ scope: 'design', isOpen: true });
83+
const createNewCollection = () => setNewWorkspaceModalState({ scope: 'collection', isOpen: true, source: 'sidebar-dropdown' });
84+
const createNewDocument = () => setNewWorkspaceModalState({ scope: 'design', isOpen: true, source: 'sidebar-dropdown' });
8485
const canCreateMockServer = project?._id;
8586
const createNewMockServer = () =>
86-
canCreateMockServer && setNewWorkspaceModalState({ scope: 'mock-server', isOpen: true });
87-
const createNewGlobalEnvironment = () => setNewWorkspaceModalState({ scope: 'environment', isOpen: true });
88-
const createNewMcpClient = () => setNewWorkspaceModalState({ scope: 'mcp', isOpen: true });
87+
canCreateMockServer && setNewWorkspaceModalState({ scope: 'mock-server', isOpen: true, source: 'sidebar-dropdown' });
88+
const createNewGlobalEnvironment = () => setNewWorkspaceModalState({ scope: 'environment', isOpen: true, source: 'sidebar-dropdown' });
89+
const createNewMcpClient = () => setNewWorkspaceModalState({ scope: 'mcp', isOpen: true, source: 'sidebar-dropdown' });
8990

9091
const projectActionList: ProjectActionItem[] = [
9192
{
@@ -341,6 +342,7 @@ export const ProjectDropdown: FC<Props> = ({ project, organizationId, storageRul
341342
project={project}
342343
storageRules={storageRules}
343344
scope={newWorkspaceModalState.scope}
345+
source={newWorkspaceModalState.source}
344346
onOpenChange={isOpen => {
345347
setNewWorkspaceModalState({
346348
scope: newWorkspaceModalState.scope,

packages/insomnia/src/ui/components/sidebar/project-navigation-sidebar/empty-node.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,16 @@ export const EmptyNode = ({ item, storageRules }: EmptyNodeProps) => {
3232
const [newWorkspaceModalState, setNewWorkspaceModalState] = useState<{
3333
scope: WorkspaceScope;
3434
isOpen: boolean;
35+
source?: string;
3536
} | null>({
3637
scope: 'collection',
3738
isOpen: false,
3839
});
39-
const createNewCollection = () => setNewWorkspaceModalState({ scope: 'collection', isOpen: true });
40-
const createNewDocument = () => setNewWorkspaceModalState({ scope: 'design', isOpen: true });
41-
const createNewMockServer = () => setNewWorkspaceModalState({ scope: 'mock-server', isOpen: true });
42-
const createNewGlobalEnvironment = () => setNewWorkspaceModalState({ scope: 'environment', isOpen: true });
43-
const createNewMcpClient = () => setNewWorkspaceModalState({ scope: 'mcp', isOpen: true });
40+
const createNewCollection = () => setNewWorkspaceModalState({ scope: 'collection', isOpen: true, source: 'sidebar' });
41+
const createNewDocument = () => setNewWorkspaceModalState({ scope: 'design', isOpen: true, source: 'sidebar' });
42+
const createNewMockServer = () => setNewWorkspaceModalState({ scope: 'mock-server', isOpen: true, source: 'sidebar' });
43+
const createNewGlobalEnvironment = () => setNewWorkspaceModalState({ scope: 'environment', isOpen: true, source: 'sidebar' });
44+
const createNewMcpClient = () => setNewWorkspaceModalState({ scope: 'mcp', isOpen: true, source: 'sidebar' });
4445

4546
const newRequestFetcher = useRequestNewActionFetcher();
4647
const newRequestGroupFetcher = useRequestGroupNewActionFetcher();
@@ -268,6 +269,7 @@ export const EmptyNode = ({ item, storageRules }: EmptyNodeProps) => {
268269
project={project}
269270
storageRules={storageRules}
270271
scope={newWorkspaceModalState.scope}
272+
source={newWorkspaceModalState.source}
271273
onOpenChange={isOpen => {
272274
setNewWorkspaceModalState({
273275
scope: newWorkspaceModalState.scope,

0 commit comments

Comments
 (0)