mod-arch-shared
Version:
Shared library for modular architecture micro-frontend projects
25 lines • 1.85 kB
JavaScript
import * as React from 'react';
import { NavLink } from 'react-router-dom';
import { Brand, Nav, NavExpandable, NavItem, NavList, PageSidebar, PageSidebarBody, } from '@patternfly/react-core';
import logoLightTheme from '../images/logo-light-theme.svg';
import { isNavDataGroup } from '../types/common';
import { useThemeContext } from '../hooks/useThemeContext';
const NavHref = ({ item }) => (React.createElement(NavItem, { key: item.label, "data-id": item.label, itemId: item.label },
React.createElement(NavLink, { to: item.path }, item.label)));
const NavGroup = ({ item }) => {
const { children } = item;
const [expanded, setExpanded] = React.useState(false);
return (React.createElement(NavExpandable, { "data-id": item.label, key: item.label, id: item.label, title: item.label, groupId: item.label, isExpanded: expanded, onExpand: (e, val) => setExpanded(val), "aria-label": item.label }, children.map((childItem) => (React.createElement(NavHref, { key: childItem.label, "data-id": childItem.label, item: childItem })))));
};
const NavSidebar = ({ navData }) => {
const { isMUITheme } = useThemeContext();
return (React.createElement(PageSidebar, null,
React.createElement(PageSidebarBody, null,
React.createElement(Nav, { id: "nav-primary-simple" },
React.createElement(NavList, { id: "nav-list-simple" },
isMUITheme ? (React.createElement(NavItem, null,
React.createElement(Brand, { className: "kubeflow_brand", src: logoLightTheme, alt: "Kubeflow Logo" }))) : null,
navData.map((item) => isNavDataGroup(item) ? (React.createElement(NavGroup, { key: item.label, item: item })) : (React.createElement(NavHref, { key: item.label, item: item }))))))));
};
export default NavSidebar;
//# sourceMappingURL=NavSidebar.js.map