Files
money/packages/ui/lib/shortcuts/hooks.ts
2025-12-06 23:02:28 -05:00

19 lines
496 B
TypeScript

import { useEffect, useRef } from "react";
import { keysStore } from "./store";
import type { Key } from "./types";
import { enforceKeyOptions } from "./util";
export const useShortcut = (key: Key, handler: () => void) => {
const keyOptions = enforceKeyOptions(key);
const keyName = keyOptions.name;
const ref = useRef(handler);
ref.current = handler;
useEffect(() => {
keysStore.register(keyName, ref);
return () => {
keysStore.deregister(keyName);
};
}, []);
};