feat: Add workspace dropdown for new sidebar#9821
Open
cwangsmv wants to merge 2 commits intofeat/ia-nav-improvementfrom
Open
feat: Add workspace dropdown for new sidebar#9821cwangsmv wants to merge 2 commits intofeat/ia-nav-improvementfrom
cwangsmv wants to merge 2 commits intofeat/ia-nav-improvementfrom
Conversation
✅ Circular References ReportGenerated at: 2026-04-16T09:10:53.508Z Summary
Click to view all circular references in PR (20)Click to view all circular references in base branch (20)Analysis✅ No Change: This PR does not introduce or remove any circular references. This report was generated automatically by comparing against the |
Contributor
There was a problem hiding this comment.
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 sharedWorkspacePaneHeaderused 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add dropdown list for workspaces in new sidebar