UNPKG

@b-design/ui-console-menu

Version:

React component for Alibaba Cloud.

63 lines (57 loc) 1.55 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import React from 'react'; import * as S from './styles'; /** * @internal */ export function mapItemToJSX(item) { var key = item.key, label = item.label, _item$disabled = item.disabled, disabled = _item$disabled === void 0 ? false : _item$disabled, _item$visible = item.visible, visible = _item$visible === void 0 ? true : _item$visible, render = item.render, subItems = item.items, navProps = item.navProps, type = item.type; if (visible) { if (subItems) { return /*#__PURE__*/React.createElement(S.SubMenu, _extends({ key: key, label: label }, navProps), subItems.map(mapItemToJSX)); } if (type === 'divider') { return /*#__PURE__*/React.createElement(S.Divider, { key: key }); } return /*#__PURE__*/React.createElement(S.Item, _extends({ key: key, disabled: disabled }, navProps), render ? render(item) : label); } return null; } /** * 打平嵌套结构,得到由叶子节点组成的数组。 * 类似于将`[item1, [item2, item3], item4]`变成`[item1, item2, item3, item4]` */ /* export function flattenNestedItems( items: IItemDescriptor[] ): IItemDescriptor[] { const result: IItemDescriptor[] = [] items.forEach(item => { if (item.items) { // this is a parent result.push(...flattenNestedItems(item.items)) } else { // this is a leaf result.push(item) } }) return result } */