UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

27 lines (26 loc) 881 B
"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?.registerItem; const unregisterItem = context?.unregisterItem; const isOpen = context?.isOpen; useIsomorphicLayoutEffect(() => { if (!registerItem || !unregisterItem || !isOpen) { return undefined; } indexRef.current = registerItem(itemRef); return () => { unregisterItem(indexRef.current); }; }, [registerItem, unregisterItem, isOpen]); const isActive = context?.activeIndex === indexRef.current; return { isActive, context }; } //# sourceMappingURL=useMenuItemRegistration.js.map