feat: bulk add workspaces via multi-select picker#385
feat: bulk add workspaces via multi-select picker#385Dimillian merged 7 commits intoDimillian:mainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a bulk “add workspaces” flow so users can select (or drop) multiple folders and have them added sequentially with stable activation and a single summary dialog for skips/failures.
Changes:
- Added a multi-select directory picker wrapper (
pickWorkspacePaths) with tests. - Implemented a centralized bulk-add pipeline in
useWorkspacesand updated “Add Workspace…” to use it (with summary dialog + activation of only the first added workspace). - Routed multi-path drag/drop through the same bulk-add pipeline and updated UI/menu labels to reflect multi-select.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/services/tauri.ts | Adds pickWorkspacePaths() wrapper for multi-select directory picking. |
| src/services/tauri.test.ts | Adds tests covering cancel/single/multi return shapes for pickWorkspacePaths(). |
| src/features/workspaces/hooks/useWorkspaces.ts | Adds addWorkspacesFromPaths() bulk pipeline and updates addWorkspace() to use multi-select picker. |
| src/features/workspaces/hooks/useWorkspaces.test.tsx | Adds bulk-add tests (activation + summary dialog behavior). |
| src/features/app/hooks/useWorkspaceActions.ts | Wires in a bulk handler (handleAddWorkspacesFromPaths) for callers (e.g., drag/drop). |
| src/features/app/hooks/useWorkspaceActions.test.tsx | Updates hook construction to include the new bulk-add param. |
| src/App.tsx | Updates drop handling to invoke bulk-add once (avoids per-path activation/focus bouncing). |
| src/features/home/components/Home.tsx | Updates button label to “Add Workspaces”. |
| src/features/app/components/SidebarHeader.tsx | Updates aria-label to “Add workspaces”. |
| src-tauri/src/menu.rs | Updates menu label to “Add Workspaces...”. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@codex review |
|
Codex Review: Didn't find any major issues. 👍 ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
|
Codex Review: Didn't find any major issues. More of your lovely PRs please. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Implements bulk workspace add so projects can be added in one operation.
Behavior
Code
src/services/tauri.ts: addpickWorkspacePaths()wrapper for multi-select directory picking (+ tests).src/features/workspaces/hooks/useWorkspaces.ts: addaddWorkspacesFromPaths()and updateaddWorkspace()to use multi-select + summary behavior (+ tests).src/features/app/hooks/useWorkspaceActions.ts: add bulk drop handler wiring.src/App.tsx: drop handler now calls bulk-add once (no per-path activation).src-tauri/src/menu.rs,src/features/home/components/Home.tsx,src/features/app/components/SidebarHeader.tsx: update labels to reflect multi-select.Validation
npm cinpm run lintnpm run testnpm run typecheckcd src-tauri && cargo testCloses #383.