@wordpress/components
Version:
UI components for WordPress.
52 lines (49 loc) • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useNavigationTreeItem = void 0;
var _element = require("@wordpress/element");
var _context = require("../context");
var _context2 = require("../group/context");
var _context3 = require("../menu/context");
var _utils = require("../utils");
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const useNavigationTreeItem = (itemId, props) => {
const {
activeMenu,
navigationTree: {
addItem,
removeItem
}
} = (0, _context.useNavigationContext)();
const {
group
} = (0, _context2.useNavigationGroupContext)();
const {
menu,
search
} = (0, _context3.useNavigationMenuContext)();
(0, _element.useEffect)(() => {
const isMenuActive = activeMenu === menu;
const isItemVisible = !search || props.title !== undefined && (0, _utils.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]);
};
exports.useNavigationTreeItem = useNavigationTreeItem;
//# sourceMappingURL=use-navigation-tree-item.js.map