import { useCallback, useEffect } from 'react'; export const useKeypress = ( key: string, callback?: (e: KeyboardEvent) => void ): void => { const keyCallback = useCallback( (e: KeyboardEvent) => { if (e.key === key && callback) { callback(e); } }, [key, callback] ); useEffect(() => { if (callback) { document.addEventListener('keydown', keyCallback); } return () => { if (callback) { document.removeEventListener('keydown', keyCallback); } }; }, [keyCallback]); }; export default useKeypress;