@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
27 lines (26 loc) • 881 B
JavaScript
"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