'use client'; import { useEffect, useState } from 'react'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { useKeyboardShortcutsStore } from '@/lib/stores/use-keyboard-shortcuts-store'; export function ShortcutsHelp() { const [open, setOpen] = useState(false); const { shortcuts } = useKeyboardShortcutsStore(); useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { if (e.key === '?' && !e.metaKey && !e.ctrlKey && !e.altKey) { const target = e.target as HTMLElement; if ( target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.tagName === 'SELECT' || target.tagName === 'BUTTON' || target.isContentEditable || target.closest('[role="dialog"], [role="menu"], [role="listbox"], [role="combobox"]') ) { return; } setOpen((prev) => !prev); e.preventDefault(); } }; document.addEventListener('keydown', handleKeyDown); return () => document.removeEventListener('keydown', handleKeyDown); }, []); return ( Keyboard shortcuts Press ? to toggle this help

Navigation

{shortcuts .filter((s) => s.action.startsWith('navigate_')) .map((shortcut) => (
{shortcut.description} {shortcut.key}
))}

Actions

{shortcuts .filter((s) => !s.action.startsWith('navigate_')) .map((shortcut) => (
{shortcut.description} {shortcut.key}
))}
); }