@redocly/theme
Version:
Shared UI components lib
46 lines • 2.28 kB
JavaScript
;
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