UNPKG

@6thquake/react-material

Version:

React components that implement Google's Material Design.

113 lines (95 loc) 2.55 kB
import React from 'react'; import PropTypes from 'prop-types'; import { Divider } from 'rc-menu'; import SubMenuBar from './SubMenuBar'; import MenuBarItem from './MenuBarItem'; import OriginMenuBar from './OriginMenuBar'; import EasyMenuBar from './EasyMenuBar'; import ItemGroup from './MenuBarItemGroup'; class NavBar extends React.Component { render() { const { list } = this.props; if (list && list.length != 0) { return React.createElement(EasyMenuBar, this.props); } return React.createElement(OriginMenuBar, this.props); } } process.env.NODE_ENV !== "production" ? NavBar.propTypes = { /** * @ignore */ className: PropTypes.string, /** * 初始选中的菜单项 key 数组 */ defaultOpenKeys: PropTypes.arrayOf(PropTypes.string), /** * 初始展开的 SubMenu 菜单项 key 数组 */ defaultSelectedKeys: PropTypes.arrayOf(PropTypes.string), /** * inline 时菜单是否收起状态 */ inlineCollapsed: PropTypes.bool, /** * list里的每一项数据的key值 */ itemKeysMap: PropTypes.shape({ before: PropTypes.string, beforeChildren: PropTypes.string, children: PropTypes.string, className: PropTypes.string, icon: PropTypes.string, key: PropTypes.string, name: PropTypes.string, onClick: PropTypes.string, onHandle: PropTypes.string, open: PropTypes.string, style: PropTypes.string }), /** * menu展示的数据,如果直接传入list,不需要自己写children */ list: PropTypes.array, /** * 点击 MenuItem 调用此函数 ,参数 ({item, key, keyPath}) */ onClick: PropTypes.func, /** * 取消选中时调用,仅在 multiple 生效,参数 ({item, key, selectedKeys}) */ onDeselect: PropTypes.func, /** * SubMenu 展开/关闭的回调,参数 (openKeys) */ onOpenChange: PropTypes.func, /** * 被选中时调用,参数 ({item, key, selectedKeys}) */ onSelect: PropTypes.func, /** * 当前展开的 SubMenu 菜单项 key 数组 */ openKeys: PropTypes.arrayOf(PropTypes.string), /** * @ignore */ prefixCls: PropTypes.string, /** * 当前选中的菜单项 key 数组 */ selectedKeys: PropTypes.arrayOf(PropTypes.string), /** * 主题颜色 */ theme: PropTypes.oneOf(['light', 'dark']) } : void 0; NavBar.Divider = Divider; NavBar.Item = MenuBarItem; NavBar.SubMenuBar = SubMenuBar; NavBar.ItemGroup = ItemGroup; export { SubMenuBar, MenuBarItem, ItemGroup }; export default NavBar;