@crossed/primitive
Version:
A universal & performant styling library for React Native, Next.js & React
32 lines (31 loc) • 704 B
JavaScript
import { jsx } from "react/jsx-runtime";
import ReactFocusLock from "react-focus-lock";
import { VisibilityHidden } from "../VisibilityHidden";
import { useMemo } from "react";
const Focus = ({ children, open, ...props }) => {
return /* @__PURE__ */ jsx(
ReactFocusLock,
{
as: VisibilityHidden,
lockProps: { ...props, "hide": !open, "aria-hidden": (!open).toString() },
disabled: !open,
children
}
);
};
const useEscape = (escape) => {
return useMemo(() => {
return {
onKeyDown: (e) => {
if (e.code === "Escape") {
escape();
}
}
};
}, []);
};
export {
Focus,
useEscape
};
//# sourceMappingURL=Focus.web.js.map