@wordpress/components
Version:
UI components for WordPress.
40 lines (39 loc) • 1.08 kB
JavaScript
// 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