UNPKG

@cerberus-design/react

Version:

The Cerberus Design React component library.

51 lines (50 loc) 1.14 kB
// src/context/navMenu.tsx import { css } from "styled-system/css"; import { createContext, useCallback, useContext, useMemo, useRef, useState } from "react"; import { jsx } from "react/jsx-runtime"; var NavMenuContext = createContext(null); function NavMenu(props) { const triggerRef = useRef(null); const menuRef = useRef(null); const [expanded, setExpanded] = useState(false); const handleToggle = useCallback(() => { setExpanded((prev) => !prev); }, []); const value = useMemo( () => ({ triggerRef, menuRef, expanded, onToggle: handleToggle }), [expanded, handleToggle] ); return /* @__PURE__ */ jsx(NavMenuContext.Provider, { value, children: /* @__PURE__ */ jsx( "nav", { className: css({ position: "relative" }), children: props.children } ) }); } function useNavMenuContext() { const context = useContext(NavMenuContext); if (!context) { throw new Error("useNavMenuContext must be used within a NavMenu."); } return context; } export { NavMenu, useNavMenuContext }; //# sourceMappingURL=chunk-FXWN3SPS.js.map