UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

27 lines (26 loc) 1.08 kB
"use client"; import { useRef } from 'react'; import { useMenuContext } from "./MenuContext.js"; import useIsomorphicLayoutEffect from "../../shared/helpers/useIsomorphicLayoutEffect.js"; export default function useMenuItemRegistration(itemRef) { const context = useMenuContext(); const indexRef = useRef(-1); const registerItem = context === null || context === void 0 ? void 0 : context.registerItem; const unregisterItem = context === null || context === void 0 ? void 0 : context.unregisterItem; const isOpen = context === null || context === void 0 ? void 0 : context.isOpen; useIsomorphicLayoutEffect(() => { if (!registerItem || !unregisterItem || !isOpen) { return undefined; } indexRef.current = registerItem(itemRef); return () => { unregisterItem(indexRef.current); }; }, [registerItem, unregisterItem, isOpen]); const isActive = (context === null || context === void 0 ? void 0 : context.activeIndex) === indexRef.current; return { isActive, context }; } //# sourceMappingURL=useMenuItemRegistration.js.map