UNPKG

just-hotkeys

Version:

A declarative keyboard shortcut manager for JavaScript and TypeScript - framework agnostic with React support

61 lines (60 loc) 1.45 kB
import { useRef as d, useMemo as f, useEffect as l } from "react"; import { createShortcuts as S } from "./index.js"; function g(r, e) { const u = d(null), a = f( () => e, [ e == null ? void 0 : e.target, e == null ? void 0 : e.preventDefault, e == null ? void 0 : e.stopPropagation, e == null ? void 0 : e.enableInInputs ] ); l(() => (u.current = S(r, a), () => { var m; (m = u.current) == null || m.destroy(), u.current = null; }), [r, a]); } function I(r) { const e = d(null), u = f( () => r, [ r == null ? void 0 : r.target, r == null ? void 0 : r.preventDefault, r == null ? void 0 : r.stopPropagation, r == null ? void 0 : r.enableInInputs ] ); return l(() => (e.current = S({}, u), () => { var t; (t = e.current) == null || t.destroy(), e.current = null; }), [u]), { addShortcuts: (t) => { var c; (c = e.current) == null || c.add(t); }, removeShortcuts: (t) => { var c; (c = e.current) == null || c.remove(t); }, getActiveShortcuts: () => { var t; return ((t = e.current) == null ? void 0 : t.getActiveShortcuts()) || []; } }; } function A(r, e, u) { g(e ? r : {}, u); } function R(r, e, u) { g(r, { ...u, target: e.current || void 0 }); } export { A as useConditionalShortcuts, R as useScopedShortcuts, I as useShortcutManager, g as useShortcuts };