({
isCompact,
addWorkspace,
addWorkspaceFromPath,
addWorkspaceFromGitUrl,
addWorkspacesFromPaths,
setActiveThreadId,
setActiveTab,
exitDiffView,
selectWorkspace,
onStartNewAgentDraft,
openWorktreePrompt,
openClonePrompt,
composerInputRef,
onDebug,
}: Params)
| 25 | }; |
| 26 | |
| 27 | export function useWorkspaceActions({ |
| 28 | isCompact, |
| 29 | addWorkspace, |
| 30 | addWorkspaceFromPath, |
| 31 | addWorkspaceFromGitUrl, |
| 32 | addWorkspacesFromPaths, |
| 33 | setActiveThreadId, |
| 34 | setActiveTab, |
| 35 | exitDiffView, |
| 36 | selectWorkspace, |
| 37 | onStartNewAgentDraft, |
| 38 | openWorktreePrompt, |
| 39 | openClonePrompt, |
| 40 | composerInputRef, |
| 41 | onDebug, |
| 42 | }: Params) { |
| 43 | const handleWorkspaceAdded = useCallback( |
| 44 | (workspace: WorkspaceInfo) => { |
| 45 | setActiveThreadId(null, workspace.id); |
| 46 | if (isCompact) { |
| 47 | setActiveTab("codex"); |
| 48 | } |
| 49 | }, |
| 50 | [isCompact, setActiveTab, setActiveThreadId], |
| 51 | ); |
| 52 | |
| 53 | const handleAddWorkspace = useCallback(async () => { |
| 54 | try { |
| 55 | const workspace = await addWorkspace(); |
| 56 | if (workspace) { |
| 57 | handleWorkspaceAdded(workspace); |
| 58 | } |
| 59 | } catch (error) { |
| 60 | const message = error instanceof Error ? error.message : String(error); |
| 61 | onDebug({ |
| 62 | id: `${Date.now()}-client-add-workspace-error`, |
| 63 | timestamp: Date.now(), |
| 64 | source: "error", |
| 65 | label: "workspace/add error", |
| 66 | payload: message, |
| 67 | }); |
| 68 | alert(`Failed to add workspace.\n\n${message}`); |
| 69 | } |
| 70 | }, [addWorkspace, handleWorkspaceAdded, onDebug]); |
| 71 | |
| 72 | const handleAddWorkspacesFromPaths = useCallback( |
| 73 | async (paths: string[]) => { |
| 74 | try { |
| 75 | const workspace = await addWorkspacesFromPaths(paths); |
| 76 | if (workspace) { |
| 77 | handleWorkspaceAdded(workspace); |
| 78 | } |
| 79 | } catch (error) { |
| 80 | const message = error instanceof Error ? error.message : String(error); |
| 81 | onDebug({ |
| 82 | id: `${Date.now()}-client-add-workspace-error`, |
| 83 | timestamp: Date.now(), |
| 84 | source: "error", |
no test coverage detected