UNPKG

@crossed/ui

Version:

A universal & performant styling library for React Native, Next.js & React

32 lines (31 loc) 838 B
import { jsx } from "react/jsx-runtime"; import { FocusOn } from "react-focus-on"; import { useFocusScope as useOriginal } from "react-focus-lock"; import { useMemo } from "react"; import { useFloatingContext } from "../../overlay/Floating"; const Focus = (props) => { return /* @__PURE__ */ jsx(FocusOn, { ...props }); }; const useFocusScope = () => { const { focusNext, focusPrev } = useOriginal(); const { onClose } = useFloatingContext(); return useMemo( () => ({ onKeyDown: (e) => { if (e.code === "ArrowDown") { focusNext(); } else if (e.code === "ArrowUp") { focusPrev(); } else if (e.code === "Tab") { onClose(); } } }), [focusNext, focusPrev, onClose] ); }; export { Focus, useFocusScope }; //# sourceMappingURL=Focus.web.js.map