import { useRef } from "./use-ref.js"; import { useEffect } from "./use-effect.js"; import { withUpdates } from "./hook-engine.js"; export function useKeypress(userHandler) { const signal = useRef(userHandler); signal.current = userHandler; useEffect((rl) => { let ignore = false; const handler = withUpdates((_input, event) => { if (ignore) return; void signal.current(event, rl); }); rl.input.on('keypress', handler); return () => { ignore = true; rl.input.removeListener('keypress', handler); }; }, []); }