import {useEffect, useState} from 'react'; /** * Hook to detect when a specific key is being pressed */ function useKeyPress(targetKey: React.KeyboardEvent['key']) { const [keyPressed, setKeyPressed] = useState(false); useEffect(() => { function downHandler({key}: KeyboardEvent) { if (key === targetKey) { setKeyPressed(true); } } function upHandler({key}: KeyboardEvent) { if (key === targetKey) { setKeyPressed(false); } } window.addEventListener('keydown', downHandler); window.addEventListener('keyup', upHandler); return () => { window.removeEventListener('keydown', downHandler); window.removeEventListener('keyup', upHandler); }; }, [targetKey]); return keyPressed; } export default useKeyPress;