UNPKG

@wordpress/components

Version:
44 lines (43 loc) 1.19 kB
/** * WordPress dependencies */ import { useEffect } from '@wordpress/element'; /** * Internal dependencies */ import { useNavigationContext } from '../context'; import { useNavigationGroupContext } from '../group/context'; import { useNavigationMenuContext } from '../menu/context'; import { normalizedSearch } from '../utils'; export const 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 !== undefined && normalizedSearch(props.title, search); addItem(itemId, { ...props, group, menu, _isVisible: isMenuActive && isItemVisible }); return () => { removeItem(itemId); }; // Not adding deps for now, as it would require either a larger refactor. // See https://github.com/WordPress/gutenberg/pull/41639 }, [activeMenu, search]); }; //# sourceMappingURL=use-navigation-tree-item.js.map