diff --git a/packages/app/src/command-center/workspace-registration.tsx b/packages/app/src/command-center/workspace-registration.tsx index 0f16117b89..9ff2858714 100644 --- a/packages/app/src/command-center/workspace-registration.tsx +++ b/packages/app/src/command-center/workspace-registration.tsx @@ -26,10 +26,7 @@ import { supportsDesktopPaneSplits, useIsCompactFormFactor } from "@/constants/l import { GIT_ACTION_ICONS } from "@/git/action-icons"; import { useGitActionRunner, useGitActions } from "@/git/use-actions"; import { useKeyboardShortcutOverrides } from "@/hooks/use-keyboard-shortcut-overrides"; -import { - resolveShortcutKeysForAction, - type ShortcutOverrides, -} from "@/keyboard/keyboard-shortcuts"; +import { type ShortcutOverrides } from "@/keyboard/keyboard-shortcuts"; import { useKeyboardActionDispatcher } from "@/keyboard/keyboard-action-dispatcher-context"; import { useActiveWorkspaceSelection } from "@/stores/navigation-active-workspace-store"; import { useWorkspaceDirectory } from "@/stores/session-store-hooks"; @@ -48,6 +45,7 @@ import { buildWorkspaceCommandCenterContributions, type WorkspaceCommandCenterShortcuts, } from "./workspace-contributions"; +import { resolveWorkspaceCommandCenterShortcuts } from "./workspace-shortcuts"; const WORKSPACE_COMMAND_CENTER_ICONS = { newAgent: getCommandCenterIcon(SquarePen), @@ -87,28 +85,7 @@ function staticIcon(element: ReactElement | undefined): CommandCenterIcon | unde function resolveWorkspaceShortcuts(overrides: ShortcutOverrides): WorkspaceCommandCenterShortcuts { const platform = { isMac: getShortcutOs() === "mac", isDesktop: getIsElectron() }; - return { - newAgent: resolveShortcutKeysForAction("workspace-tab-new", overrides, platform) ?? undefined, - newTerminal: - resolveShortcutKeysForAction("workspace-terminal-new", overrides, platform) ?? undefined, - splitRight: - resolveShortcutKeysForAction("workspace-pane-split-right", overrides, platform) ?? undefined, - splitDown: - resolveShortcutKeysForAction("workspace-pane-split-down", overrides, platform) ?? undefined, - archiveWorkspace: - resolveShortcutKeysForAction("archive-workspace", overrides, platform) ?? undefined, - previousTab: - resolveShortcutKeysForAction("workspace-tab-prev", overrides, platform) ?? undefined, - nextTab: resolveShortcutKeysForAction("workspace-tab-next", overrides, platform) ?? undefined, - closeCurrentTab: - resolveShortcutKeysForAction("workspace-tab-close-current", overrides, platform) ?? undefined, - closePane: - resolveShortcutKeysForAction("workspace-pane-close", overrides, platform) ?? undefined, - togglePaneMaximization: - resolveShortcutKeysForAction("workspace-explorer-maximize", overrides, platform) ?? undefined, - toggleSidePanel: - resolveShortcutKeysForAction("toggle-right-sidebar", overrides, platform) ?? undefined, - }; + return resolveWorkspaceCommandCenterShortcuts({ overrides, platform }); } export function useWorkspaceCommandCenterActions(): void { diff --git a/packages/app/src/command-center/workspace-shortcuts.test.ts b/packages/app/src/command-center/workspace-shortcuts.test.ts new file mode 100644 index 0000000000..bfffce9577 --- /dev/null +++ b/packages/app/src/command-center/workspace-shortcuts.test.ts @@ -0,0 +1,13 @@ +import { describe, expect, it } from "vitest"; +import { resolveWorkspaceCommandCenterShortcuts } from "./workspace-shortcuts"; + +describe("resolveWorkspaceCommandCenterShortcuts", () => { + it("assigns the New agent command its own shortcut", () => { + expect( + resolveWorkspaceCommandCenterShortcuts({ + overrides: {}, + platform: { isMac: true, isDesktop: true }, + }).newAgent, + ).toEqual([["mod", "shift", "A"]]); + }); +}); diff --git a/packages/app/src/command-center/workspace-shortcuts.ts b/packages/app/src/command-center/workspace-shortcuts.ts new file mode 100644 index 0000000000..3f355e048a --- /dev/null +++ b/packages/app/src/command-center/workspace-shortcuts.ts @@ -0,0 +1,39 @@ +import { + resolveShortcutKeysForAction, + type ShortcutOverrides, +} from "@/keyboard/keyboard-shortcuts"; +import type { WorkspaceCommandCenterShortcuts } from "./workspace-contributions"; + +interface ResolveWorkspaceCommandCenterShortcutsInput { + overrides: ShortcutOverrides; + platform: { isMac: boolean; isDesktop: boolean }; +} + +export function resolveWorkspaceCommandCenterShortcuts({ + overrides, + platform, +}: ResolveWorkspaceCommandCenterShortcutsInput): WorkspaceCommandCenterShortcuts { + return { + newAgent: + resolveShortcutKeysForAction("workspace-tab-target-agent", overrides, platform) ?? undefined, + newTerminal: + resolveShortcutKeysForAction("workspace-terminal-new", overrides, platform) ?? undefined, + splitRight: + resolveShortcutKeysForAction("workspace-pane-split-right", overrides, platform) ?? undefined, + splitDown: + resolveShortcutKeysForAction("workspace-pane-split-down", overrides, platform) ?? undefined, + archiveWorkspace: + resolveShortcutKeysForAction("archive-workspace", overrides, platform) ?? undefined, + previousTab: + resolveShortcutKeysForAction("workspace-tab-prev", overrides, platform) ?? undefined, + nextTab: resolveShortcutKeysForAction("workspace-tab-next", overrides, platform) ?? undefined, + closeCurrentTab: + resolveShortcutKeysForAction("workspace-tab-close-current", overrides, platform) ?? undefined, + closePane: + resolveShortcutKeysForAction("workspace-pane-close", overrides, platform) ?? undefined, + togglePaneMaximization: + resolveShortcutKeysForAction("workspace-explorer-maximize", overrides, platform) ?? undefined, + toggleSidePanel: + resolveShortcutKeysForAction("toggle-right-sidebar", overrides, platform) ?? undefined, + }; +}