trunk/pc4public/portal/_rc/_rc-menu-7.0.3/src/MenuItemGroup.jsx

49 lines
1.3 KiB
JavaScript

import React from 'react';
import PropTypes from 'prop-types';
import { menuAllProps } from './util';
class MenuItemGroup extends React.Component {
static propTypes = {
renderMenuItem: PropTypes.func,
index: PropTypes.number,
className: PropTypes.string,
subMenuKey: PropTypes.string,
rootPrefixCls: PropTypes.string,
};
static defaultProps = {
disabled: true,
};
renderInnerMenuItem = (item) => {
const { renderMenuItem, index } = this.props;
return renderMenuItem(item, index, this.props.subMenuKey);
}
render() {
const { ...props } = this.props;
const { className = '', rootPrefixCls } = props;
const titleClassName = `${rootPrefixCls}-item-group-title`;
const listClassName = `${rootPrefixCls}-item-group-list`;
const { title, children } = props;
menuAllProps.forEach(key => delete props[key]);
return (
<li {...props} className={`${className} ${rootPrefixCls}-item-group`}>
<div
className={titleClassName}
title={typeof title === 'string' ? title : undefined}
>
{title}
</div>
<ul className={listClassName}>
{React.Children.map(children, this.renderInnerMenuItem)}
</ul>
</li>
);
}
}
MenuItemGroup.isMenuItemGroup = true;
export default MenuItemGroup;