Skip to content

feat: Add workspace dropdown for new sidebar#9821

Open
cwangsmv wants to merge 2 commits intofeat/ia-nav-improvementfrom
feat/add-workspace-dropdown
Open

feat: Add workspace dropdown for new sidebar#9821
cwangsmv wants to merge 2 commits intofeat/ia-nav-improvementfrom
feat/add-workspace-dropdown

Conversation

@cwangsmv
Copy link
Copy Markdown
Contributor

Add dropdown list for workspaces in new sidebar

@cwangsmv cwangsmv marked this pull request as draft April 16, 2026 08:45
@cwangsmv cwangsmv changed the base branch from develop to feat/ia-nav-improvement April 16, 2026 08:45
@cwangsmv cwangsmv marked this pull request as ready for review April 16, 2026 08:46
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 16, 2026

✅ Circular References Report

Generated at: 2026-04-16T09:10:53.508Z
Status: ✅ NO CHANGE

Summary

Metric Base (feat/ia-nav-improvement) PR Change
Total Circular References 20 20 0 (0.00%)
Click to view all circular references in PR (20)
insomnia-inso/src/db/models/types.ts -> insomnia-inso/src/db/types.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/cancellation.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/cancellation.ts -> insomnia/src/script-executor.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/cancellation.ts -> insomnia/src/script-executor.ts -> insomnia/src/require-interceptor.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/concurrency.ts
insomnia/src/network/authentication.ts -> insomnia/src/network/o-auth-2/get-token.ts
insomnia/src/network/network.ts -> insomnia/src/common/render.ts
insomnia/src/network/network.ts -> insomnia/src/common/render.ts -> insomnia/src/templating/index.ts -> insomnia/src/plugins/index.ts -> insomnia/src/plugins/context/app.ts -> insomnia/src/templating/types.ts -> insomnia/src/plugins/context/network.ts
insomnia/src/network/network.ts -> insomnia/src/network/authentication.ts -> insomnia/src/network/o-auth-2/get-token.ts
insomnia/src/plugins/index.ts -> insomnia/src/plugins/context/app.ts -> insomnia/src/templating/types.ts -> insomnia/src/plugins/context/store.ts
insomnia/src/plugins/index.ts -> insomnia/src/plugins/misc.ts
insomnia/src/templating/base-extension-worker.ts -> insomnia/src/templating/worker.ts
insomnia/src/templating/index.ts -> insomnia/src/templating/base-extension.ts
insomnia/src/templating/types.ts -> insomnia/src/plugins/context/network.ts
insomnia/src/templating/types.ts -> insomnia/src/templating/utils.ts
insomnia/src/ui/components/settings/import-export.tsx -> insomnia/src/ui/components/modals/export-requests-modal.tsx
insomnia/src/ui/components/tabs/tab-list.tsx -> insomnia/src/ui/components/tabs/tab.tsx
insomnia/src/ui/components/templating/tag-editor-arg-sub-form.tsx -> insomnia/src/ui/components/templating/external-vault/external-vault-form.tsx
insomnia/src/ui/components/viewers/response-viewer.tsx -> insomnia/src/ui/components/viewers/response-multipart-viewer.tsx
Click to view all circular references in base branch (20)
insomnia-inso/src/db/models/types.ts -> insomnia-inso/src/db/types.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/cancellation.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/cancellation.ts -> insomnia/src/script-executor.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/cancellation.ts -> insomnia/src/script-executor.ts -> insomnia/src/require-interceptor.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/concurrency.ts
insomnia/src/network/authentication.ts -> insomnia/src/network/o-auth-2/get-token.ts
insomnia/src/network/network.ts -> insomnia/src/common/render.ts
insomnia/src/network/network.ts -> insomnia/src/common/render.ts -> insomnia/src/templating/index.ts -> insomnia/src/plugins/index.ts -> insomnia/src/plugins/context/app.ts -> insomnia/src/templating/types.ts -> insomnia/src/plugins/context/network.ts
insomnia/src/network/network.ts -> insomnia/src/network/authentication.ts -> insomnia/src/network/o-auth-2/get-token.ts
insomnia/src/plugins/index.ts -> insomnia/src/plugins/context/app.ts -> insomnia/src/templating/types.ts -> insomnia/src/plugins/context/store.ts
insomnia/src/plugins/index.ts -> insomnia/src/plugins/misc.ts
insomnia/src/templating/base-extension-worker.ts -> insomnia/src/templating/worker.ts
insomnia/src/templating/index.ts -> insomnia/src/templating/base-extension.ts
insomnia/src/templating/types.ts -> insomnia/src/plugins/context/network.ts
insomnia/src/templating/types.ts -> insomnia/src/templating/utils.ts
insomnia/src/ui/components/settings/import-export.tsx -> insomnia/src/ui/components/modals/export-requests-modal.tsx
insomnia/src/ui/components/tabs/tab-list.tsx -> insomnia/src/ui/components/tabs/tab.tsx
insomnia/src/ui/components/templating/tag-editor-arg-sub-form.tsx -> insomnia/src/ui/components/templating/external-vault/external-vault-form.tsx
insomnia/src/ui/components/viewers/response-viewer.tsx -> insomnia/src/ui/components/viewers/response-multipart-viewer.tsx

Analysis

No Change: This PR does not introduce or remove any circular references.


This report was generated automatically by comparing against the feat/ia-nav-improvement branch.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds navigation and header UI pieces needed for the “new sidebar”, including workspace-level dropdown actions and breadcrumb-based pane headers, and wires these into existing workspace panes/routes.

Changes:

  • Introduces a new virtualized Project Navigation Sidebar tree (projects → workspaces → collection children) with workspace action dropdowns and drag-and-drop reordering.
  • Adds a reusable PaneHeader + workspace breadcrumbs hook and a shared WorkspacePaneHeader used across workspace panes (debug/mock-server/env/mcp/etc).
  • Refactors project/organization route layout to host the new sidebar and moves “learning feature” fetch/display into the project route.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/insomnia/src/ui/hooks/use-insomnia-tab.ts Exposes buildResourceUrl helper for breadcrumb navigation.
packages/insomnia/src/ui/components/workspace/workspace-pane-header.tsx New shared workspace pane header (env/certs/cookies actions).
packages/insomnia/src/ui/components/workspace/use-workspace-breadcrumb.tsx New hook to build breadcrumb list for PaneHeader.
packages/insomnia/src/ui/components/workspace/resource-icon.tsx New resource-aware icon renderer for breadcrumbs.
packages/insomnia/src/ui/components/sidebar/project-navigation-sidebar/workspace-node.tsx Workspace row renderer for the new sidebar tree.
packages/insomnia/src/ui/components/sidebar/project-navigation-sidebar/use-sidebar-drag-and-drop.tsx New drag-and-drop logic for collection child reordering.
packages/insomnia/src/ui/components/sidebar/project-navigation-sidebar/types.ts Sidebar tree item typing (project/workspace/collection child).
packages/insomnia/src/ui/components/sidebar/project-navigation-sidebar/request-node.tsx Collection child (request/folder) row renderer + actions dropdown.
packages/insomnia/src/ui/components/sidebar/project-navigation-sidebar/project-node.tsx Project row renderer + project dropdown integration.
packages/insomnia/src/ui/components/sidebar/project-navigation-sidebar/project-navigation-sidebar.tsx Main new sidebar component (virtualized tree, filtering, sync controls).
packages/insomnia/src/ui/components/sidebar/project-navigation-sidebar/project-navigation-sidebar-utils.ts DB querying + flatten/filter helpers for sidebar tree data.
packages/insomnia/src/ui/components/panes/scratchpad-tutorial-pane.tsx Extracted scratchpad tutorial panel into its own component.
packages/insomnia/src/ui/components/pane-header.tsx New breadcrumb header component used by workspace panes.
packages/insomnia/src/ui/components/mcp/mcp-pane.tsx Adds WorkspacePaneHeader to MCP pane layout.
packages/insomnia/src/ui/components/dropdowns/sidebar-workspace-dropdown.tsx New workspace actions dropdown for sidebar workspace rows.
packages/insomnia/src/ui/components/dropdowns/request-group-actions-dropdown.tsx Refactors props to accept active project/workspace; tweaks trigger styling.
packages/insomnia/src/ui/components/dropdowns/request-actions-dropdown.tsx Refactors props to accept active project/workspace; updates cURL export call.
packages/insomnia/src/ui/components/dropdowns/project-dropdown.tsx Adds “Create in project” section + new workspace modal integration.
packages/insomnia/src/routes/organization.tsx Header updates (org selector); removes old org sidebar UI.
packages/insomnia/src/routes/organization.$organizationId.project._index.tsx Redirects to first project when present; simplifies empty state view.
packages/insomnia/src/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId.test.tsx Uses WorkspacePaneHeader in test harness component.
packages/insomnia/src/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId.spec.tsx Uses WorkspacePaneHeader in spec workspace route.
packages/insomnia/src/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId.mock-server.tsx Uses WorkspacePaneHeader in mock-server workspace route.
packages/insomnia/src/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId.environment.tsx Uses WorkspacePaneHeader in environment workspace route.
packages/insomnia/src/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId.debug.tsx Integrates WorkspacePaneHeader; adjusts design workspace sidebar behavior.
packages/insomnia/src/routes/organization.$organizationId.project.$projectId.tutorial.$panel.tsx Removes Panel wrapper around tutorial content.
packages/insomnia/src/routes/organization.$organizationId.project.$projectId.tsx New project-level layout hosting global sidebar + learning feature panel.
packages/insomnia/src/routes/organization.$organizationId.project.$projectId._index.tsx Removes sidebar-related responsibilities now handled by project route.
packages/insomnia/src/models/helpers/project.ts Makes sortProjects generic to preserve extended project typing.
packages/insomnia/src/insomnia-data/src/models/workspace.ts Adds isWorkspaceId id-prefix guard.
packages/insomnia/src/insomnia-data/src/models/environment.ts Adds isEnvironmentId id-prefix guard.
packages/insomnia/src/insomnia-data/node-src/services/request-group-meta.ts Adds get-or-create/update-or-create helpers.
packages/insomnia/src/common/har.ts Extends exportHarRequest to accept environment id or workspace id.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants