import { useEffect } from "react"; interface ShortcutHandlers { onNewIssue?: () => void; onToggleSidebar?: () => void; onTogglePanel?: () => void; } export function useKeyboardShortcuts({ onNewIssue, onToggleSidebar, onTogglePanel }: ShortcutHandlers) { useEffect(() => { function handleKeyDown(e: KeyboardEvent) { // Don't fire shortcuts when typing in inputs const target = e.target as HTMLElement; if (target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.isContentEditable) { return; } // C → New Issue if (e.key === "c" && !e.metaKey && !e.ctrlKey && !e.altKey) { e.preventDefault(); onNewIssue?.(); } // [ → Toggle Sidebar if (e.key === "[" && !e.metaKey && !e.ctrlKey) { e.preventDefault(); onToggleSidebar?.(); } // ] → Toggle Panel if (e.key === "]" && !e.metaKey && !e.ctrlKey) { e.preventDefault(); onTogglePanel?.(); } } document.addEventListener("keydown", handleKeyDown); return () => document.removeEventListener("keydown", handleKeyDown); }, [onNewIssue, onToggleSidebar, onTogglePanel]); }