ai-learning / lib /hooks /useKey.ts
samuellimabraz's picture
feat: initial app
7198b5e unverified
Raw
History Blame Contribute Delete
477 Bytes
"use client";
import { useEffect } from "react";
type KeyHandler = (e: KeyboardEvent) => void;
export function useKey(target: string | string[], handler: KeyHandler) {
useEffect(() => {
const keys = Array.isArray(target) ? target : [target];
function onKey(e: KeyboardEvent) {
if (keys.includes(e.key)) handler(e);
}
window.addEventListener("keydown", onKey);
return () => window.removeEventListener("keydown", onKey);
}, [target, handler]);
}