@clubmed/trident-ui
Version:
Shared ClubMed React UI components
36 lines (35 loc) • 956 B
JavaScript
"use client";
import { useCallback as d } from "react";
import { CODE as u, KEY as c } from "./keyboard.constants.js";
const t = (o) => o.key === c.ENTER || o.key === c.SPACE || o.key === c.SPACEBAR || o.code === u.ENTER || o.code === u.SPACE, e = () => {
}, p = ({
up: o = e,
down: f = e,
left: E = e,
right: R = e,
start: i = e,
end: l = e,
activate: D = e
}) => d(
(r) => {
if (t(r))
return D();
if (r.code === u.HOME)
return r.preventDefault(), i();
if (r.code === u.END)
return r.preventDefault(), l();
if (r.code === u.ARROW_UP)
return r.preventDefault(), o();
if (r.code === u.ARROW_DOWN)
return r.preventDefault(), f();
if (r.code === u.ARROW_RIGHT)
return r.preventDefault(), R();
if (r.code === u.ARROW_LEFT)
return r.preventDefault(), E();
},
[D, f, l, E, R, i, o]
);
export {
p as useKeyboardControls
};
//# sourceMappingURL=useKeyboardControls.js.map