import { useEventListener } from '@vueuse/core' export function useKeymap(options: { escape?: () => void keymap: Record onKey: (value: T) => void }) { const { escape, keymap, onKey } = options onMounted(() => { useEventListener(window, 'keydown', (e: KeyboardEvent) => { if (e.key === 'Escape' && escape) { escape() return } const value = keymap[e.key] if (value !== undefined) { onKey(value) } }) }) }