import { useState, useEffect } from "react"; export const useKeyPress = (targetKey: string): boolean => { const [keyPressed, setKeyPressed] = useState(false); useEffect(() => { const downHandler = ({ key }: { key: string }): void => { if (key === targetKey) { setKeyPressed(true); } }; const upHandler = ({ key }: { key: string }): void => { 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; };