UNPKG

@wordpress/components

Version:
40 lines (39 loc) 1.08 kB
// packages/components/src/navigation/item/use-navigation-tree-item.tsx import { useEffect } from "@wordpress/element"; import { useNavigationContext } from "../context"; import { useNavigationGroupContext } from "../group/context"; import { useNavigationMenuContext } from "../menu/context"; import { normalizedSearch } from "../utils"; var useNavigationTreeItem = (itemId, props) => { const { activeMenu, navigationTree: { addItem, removeItem } } = useNavigationContext(); const { group } = useNavigationGroupContext(); const { menu, search } = useNavigationMenuContext(); useEffect(() => { const isMenuActive = activeMenu === menu; const isItemVisible = !search || props.title !== void 0 && normalizedSearch(props.title, search); addItem(itemId, { ...props, group, menu, _isVisible: isMenuActive && isItemVisible }); return () => { removeItem(itemId); }; }, [activeMenu, search]); }; export { useNavigationTreeItem }; //# sourceMappingURL=use-navigation-tree-item.js.map