Some checks failed
build-packages / dedupe push run (push) Has been cancelled
build-packages / dedupe result (push) Has been cancelled
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / ${{ needs.dedupe.outputs.skip_heavy_ci == 'true' && 'deduped build-linux-x64' || 'build-linux-x64' }} (push) Has been cancelled
build-packages / ${{ needs.dedupe.outputs.skip_heavy_ci == 'true' && 'deduped build-linux-arm64' || 'build-linux-arm64' }} (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
* feat(shortcuts): add resolveSidePanelToggleIntent pure resolver * feat(shortcuts): Ctrl+W closes the tab directly (drop side-panel priority) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(shortcuts): register toggle-side-panel binding (default ⌘/Ctrl+\) * feat(shortcuts): add side-panel toggle handler + last-panel memory in TerminalLayer * feat(shortcuts): dispatch toggleSidePanel hotkey to TerminalLayer --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
19 lines
626 B
TypeScript
19 lines
626 B
TypeScript
export type SidePanelToggleIntent<T extends string> =
|
|
| { kind: 'close' }
|
|
| { kind: 'open'; tab: T };
|
|
|
|
/**
|
|
* Decide what the "toggle side panel" shortcut should do.
|
|
* - If a panel is open → close it.
|
|
* - If closed → reopen the last-shown sub-panel for the tab, falling back to
|
|
* `fallbackTab` when the tab has no remembered panel.
|
|
*/
|
|
export function resolveSidePanelToggleIntent<T extends string>(input: {
|
|
isOpen: boolean;
|
|
lastTab: T | null;
|
|
fallbackTab: T;
|
|
}): SidePanelToggleIntent<T> {
|
|
if (input.isOpen) return { kind: 'close' };
|
|
return { kind: 'open', tab: input.lastTab ?? input.fallbackTab };
|
|
}
|