UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

33 lines (32 loc) 1.34 kB
"use strict"; "use client"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useMenuItemRegistration; var _react = require("react"); var _MenuContext = require("./MenuContext.js"); var _useIsomorphicLayoutEffect = _interopRequireDefault(require("../../shared/helpers/useIsomorphicLayoutEffect.js")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function useMenuItemRegistration(itemRef) { const context = (0, _MenuContext.useMenuContext)(); const indexRef = (0, _react.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; (0, _useIsomorphicLayoutEffect.default)(() => { 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