import { useEffect } from "react"; /** * Hook to add keyboard shortcuts to forms. * - Ctrl+S / Cmd+S: Save (calls onSave callback) * - Escape: Cancel (calls onCancel callback if provided) */ export function useFormShortcuts(onSave: () => void, onCancel?: () => void) { useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { // Ctrl+S or Cmd+S to save if ((e.ctrlKey || e.metaKey) && e.key === "s") { e.preventDefault(); onSave(); } // Escape to cancel (if handler provided) if (e.key === "Escape" && onCancel) { e.preventDefault(); onCancel(); } }; document.addEventListener("keydown", handleKeyDown); return () => document.removeEventListener("keydown", handleKeyDown); }, [onSave, onCancel]); }