acud
Version:
acg react 组件库
81 lines • 3.11 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
import _extends from "@babel/runtime/helpers/esm/extends";
/**
* @file
* @author dailin01
*/
import React, { useContext } from 'react';
import classNames from 'classnames';
import { ItemGroup } from './rc-menu';
import Item from './MenuItem';
import ItemCustom from './MenuItemCustom';
import SubMenu from './SubMenu';
import MenuHead from './MenuHead';
import HeaderMenu from './header';
import GlobalSiderBar from './globalSilderBar';
import BasicMenu from './baseMenu';
import MenuContext from './MenuContext';
import { ConfigContext } from '../config-provider';
;
var Menu = function Menu(props) {
var customizePrefixCls = props.prefixCls,
_props$mode = props.mode,
mode = _props$mode === void 0 ? 'horizontal' : _props$mode,
_props$iconList = props.iconList,
iconList = _props$iconList === void 0 ? [] : _props$iconList,
inlineCollapsed = props.inlineCollapsed,
_props$scope = props.scope,
scope = _props$scope === void 0 ? 'local' : _props$scope;
var _React$useContext = React.useContext(ConfigContext),
getPrefixCls = _React$useContext.getPrefixCls;
var prefixCls = getPrefixCls('menu', customizePrefixCls);
var menuContextValue = useContext(MenuContext);
if (scope === 'global') {
if (mode === 'horizontal') {
return /*#__PURE__*/React.createElement(MenuContext.Provider, {
value: _extends(_extends({}, menuContextValue), {
menuMode: mode,
inlineCollapsed: inlineCollapsed,
prefixCls: prefixCls,
scope: scope
})
}, /*#__PURE__*/React.createElement(HeaderMenu, props));
}
if (mode === 'inline') {
return /*#__PURE__*/React.createElement(MenuContext.Provider, {
value: _extends(_extends({}, menuContextValue), {
menuMode: mode,
inlineCollapsed: inlineCollapsed,
prefixCls: prefixCls,
firstLevel: true,
scope: scope
})
}, /*#__PURE__*/React.createElement(GlobalSiderBar, props));
}
}
var containerClsName = classNames(_defineProperty({}, "".concat(prefixCls, "-icon-container"), mode === 'horizontal' && iconList.length));
return /*#__PURE__*/React.createElement(MenuContext.Provider, {
value: _extends(_extends({}, menuContextValue), {
firstLevel: true,
menuMode: mode,
inlineCollapsed: inlineCollapsed,
prefixCls: prefixCls,
scope: scope
})
}, mode === 'horizontal' && iconList.length ? /*#__PURE__*/React.createElement("div", {
className: containerClsName
}, /*#__PURE__*/React.createElement(BasicMenu, props), /*#__PURE__*/React.createElement("div", {
className: "".concat(prefixCls, "-iconlist")
}, iconList.map(function (item, idx) {
return /*#__PURE__*/React.createElement("span", {
key: idx,
className: "icon-item"
}, item);
}))) : /*#__PURE__*/React.createElement(BasicMenu, props));
};
Menu.Item = Item;
Menu.SubMenu = SubMenu;
Menu.MenuHead = MenuHead;
Menu.ItemGroup = ItemGroup;
Menu.ItemCustom = ItemCustom;
export default Menu;