Sha256: a05ccfd9d55e4311a152500ca59619fdb818944471d023d29d78b38ef8aec602
Contents?: true
Size: 755 Bytes
Versions: 1024
Compression:
Stored size: 755 Bytes
Contents
import { useEffect, useState } from 'react' export const useKbdControls = (api: {[key: string]: () => void}): string => { const [cmdKey, setCmdKey] = useState('') useEffect(() => { const handleKeyDown = ({key}: {key: string}) => { const keyCmd = key.toLowerCase() setCmdKey(keyCmd) switch(keyCmd) { case 'escape': { api.onClose() break } case 'arrowleft': { api.onArrowLeft() break } case 'arrowright': { api.onArrowRight() break } } } window.addEventListener('keydown', handleKeyDown); return () => { window.removeEventListener('keydown', handleKeyDown); } }, [api]) return cmdKey }
Version data entries
1,024 entries across 1,024 versions & 1 rubygems