UNPKG

@lesnoypudge/utils-react

Version:

lesnoypudge's utils-react

34 lines (33 loc) 937 B
import { useFunction } from "../../../../hooks/useFunction/useFunction.js"; import { isCallable } from "@lesnoypudge/utils"; import { useRef } from "react"; import { FocusOn } from "react-focus-on"; import { jsx } from "react/jsx-runtime"; const FocusLock = ({ children, innerRef, onActivation, returnFocus, ...lockProps }) => { const isActivatedRef = useRef(false); const returnFocusFn = useFunction((node) => { if (!isActivatedRef.current) return false; return isCallable(returnFocus) ? returnFocus(node) : returnFocus ?? false; }); const _onActivation = useFunction((node) => { isActivatedRef.current = true; return onActivation == null ? void 0 : onActivation(node); }); return /* @__PURE__ */ jsx(FocusOn, { returnFocus: returnFocusFn, onActivation: _onActivation, ref: innerRef, ...lockProps, children }); }; export { FocusLock }; //# sourceMappingURL=FocusLock.js.map