@cc-dev-kit-test/console-components-console-menu
Version:
React component for Alibaba Cloud.
61 lines (55 loc) • 1.45 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import React from 'react';
import * as S from './styles';
/* eslint-disable @typescript-eslint/no-explicit-any */
/**
* @public
*/
/**
* @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;
if (visible) {
if (subItems) {
return React.createElement(S.SubMenu, _extends({
key: key,
label: label
}, navProps), subItems.map(mapItemToJSX));
}
return 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
}
*/