Files
yaak/apps/yaak-client/hooks/useKeyboardEvent.ts
2026-05-07 15:50:10 -07:00

17 lines
474 B
TypeScript

import { useEffect } from "react";
export function useKeyboardEvent(
event: "keyup" | "keydown",
key: KeyboardEvent["key"],
cb: () => void,
) {
// oxlint-disable-next-line react-hooks/exhaustive-deps -- Don't have `cb` as a dep for caller convenience
useEffect(() => {
const fn = (e: KeyboardEvent) => {
if (e.key === key) cb();
};
document.addEventListener(event, fn);
return () => document.removeEventListener(event, fn);
}, [event]);
}