import { useEffect, useState } from "react"; export const useKeyPress = (targetKeyCode: number, callback: () => void) => { const [keyPressed, setKeyPressed] = useState(false); useEffect(() => { const downHandler = (event: KeyboardEvent) => { if (event.keyCode === targetKeyCode) { setKeyPressed(true); callback(); } }; const upHandler = (event: KeyboardEvent) => { if (event.keyCode === targetKeyCode) { setKeyPressed(false); } }; window.addEventListener("keydown", downHandler); window.addEventListener("keyup", upHandler); return () => { window.removeEventListener("keydown", downHandler); window.removeEventListener("keyup", upHandler); }; }, [targetKeyCode, callback]); return keyPressed; };