UNPKG

@redocly/theme

Version:

Shared UI components lib

46 lines 2.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useMobileMenuLevels = void 0; const react_1 = require("react"); const react_router_dom_1 = require("react-router-dom"); const use_theme_hooks_1 = require("../use-theme-hooks"); const use_theme_config_1 = require("../use-theme-config"); const common_1 = require("../../constants/common"); const useMobileMenuLevels = () => { var _a, _b; const { useTranslate, useCurrentProduct, usePageVersions, useSidebarItems } = (0, use_theme_hooks_1.useThemeHooks)(); const { versions = [] } = usePageVersions() || {}; const activeVersion = versions.find((version) => version === null || version === void 0 ? void 0 : version.active); const { currentItems: sidebarItems } = useSidebarItems(activeVersion); const { translate } = useTranslate(); const currentProduct = useCurrentProduct(); const productThemeConfig = (0, use_theme_config_1.useThemeConfig)(); const location = (0, react_router_dom_1.useLocation)(); const hasProductNavbarOverride = (_a = currentProduct === null || currentProduct === void 0 ? void 0 : currentProduct.configOverride) === null || _a === void 0 ? void 0 : _a.navbar; const productNavItems = (hasProductNavbarOverride ? ((_b = productThemeConfig.navbar) === null || _b === void 0 ? void 0 : _b.items) || [] : []); const menuLevels = (0, react_1.useMemo)(() => { const menuLevels = [ { label: translate('mobileMenu.mainMenu', 'Main menu'), type: common_1.MobileMenuType.MAIN_MENU, }, ]; if (currentProduct && productNavItems.length) { menuLevels.push({ label: currentProduct.name, type: common_1.MobileMenuType.PRODUCT, }); } if (sidebarItems.length || activeVersion) { menuLevels.push({ label: translate('mobileMenu.previous', 'Previous'), type: common_1.MobileMenuType.PAGE, }); } return menuLevels; // eslint-disable-next-line react-hooks/exhaustive-deps }, [location]); return menuLevels; }; exports.useMobileMenuLevels = useMobileMenuLevels; //# sourceMappingURL=use-mobile-menu-levels.js.map