UNPKG

mui-nav-menu

Version:

Navigation menu component based on material ui

35 lines (34 loc) 1.36 kB
import { createElement as _createElement } from "react"; import { jsx as _jsx } from "react/jsx-runtime"; import MenuItem from "./MenuItem"; import SubMenu from "./SubMenu"; import MenuItemGroup from "./MenuItemGroup"; import Divider from "./Divider"; export const parseItemsToNodes = (childrens) => { return childrens && childrens.length > 0 ? childrens.map((item, index) => { const { children, type, ...rest } = item; if ((children && children.length) || type == "group") { if (type == "group") { return (_jsx(MenuItemGroup, { id: rest.id, label: rest.label, children: parseItemsToNodes(children) }, rest.id)); } return (_createElement(SubMenu, { ...rest, key: rest.id }, parseItemsToNodes(children))); } if (type == "divider") { return _jsx(Divider, {}, index); } return _createElement(MenuItem, { ...rest, key: rest.id }); }) : undefined; }; export const getNodeIdPaths = (node, getNodeFn) => { const paths = []; while (node) { paths.unshift(node.id); node = getNodeFn(node.parentId); } return paths; }; export const ConditionalWrapper = ({ condition, wrapper, children, }) => { return (condition ? wrapper(children) : children); };