import { useRecoilValue } from 'recoil'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { AppHotkeyScope } from '@/ui/utilities/hotkey/types/AppHotkeyScope'; import { keyboardShortcutsGeneral, keyboardShortcutsTable, } from '../constants/keyboardShortcuts'; import { useKeyboardShortcutMenu } from '../hooks/useKeyboardShortcutMenu'; import { isKeyboardShortcutMenuOpenedState } from '../states/isKeyboardShortcutMenuOpenedState'; import { KeyboardMenuDialog } from './KeyboardShortcutMenuDialog'; import { KeyboardMenuGroup } from './KeyboardShortcutMenuGroup'; import { KeyboardMenuItem } from './KeyboardShortcutMenuItem'; export const KeyboardShortcutMenu = () => { const { toggleKeyboardShortcutMenu } = useKeyboardShortcutMenu(); const isKeyboardShortcutMenuOpened = useRecoilValue( isKeyboardShortcutMenuOpenedState, ); useScopedHotkeys( 'shift+?,meta+?', () => { toggleKeyboardShortcutMenu(); }, AppHotkeyScope.KeyboardShortcutMenu, [toggleKeyboardShortcutMenu], ); return ( isKeyboardShortcutMenuOpened && ( {keyboardShortcutsTable.map((TableShortcut) => ( ))} {keyboardShortcutsGeneral.map((GeneralShortcut) => ( ))} ) ); };