UNPKG

uxcore-menu

Version:

uxcore-menu component for uxcore.

72 lines (60 loc) 1.39 kB
import React from 'react'; import PropTypes from 'prop-types'; import { ItemGroup as RcItemGroup } from 'rc-menu'; import { getClampProps } from './utils'; class ItemGroup extends React.Component { render() { const { title, ...props } = this.props; const { mode, level, prefixCls, lineClamp, } = this.context; const { props: titleProps, clamp, } = getClampProps({ mode, level: props.level || level, className: `${prefixCls}-item-group-text ${prefixCls}-clamp-text`, lineClamp, }); if (typeof title === 'string') { titleProps.title = title; } let titleJSX = title; if (clamp) { titleJSX = ( <span {...titleProps}>{title}</span> ); } else { titleJSX = ( <span {...titleProps} className={`${prefixCls}-item-group-text`}>{title}</span> ); } props.title = titleJSX; return ( <RcItemGroup {...props} /> ); } } ItemGroup.propTypes = { ...RcItemGroup.propTypes, title: PropTypes.node, }; ItemGroup.defaultProps = { ...RcItemGroup.defaultProps, title: null, }; ItemGroup.contextTypes = { mode: PropTypes.string, level: PropTypes.number, theme: PropTypes.string, prefixCls: PropTypes.string, lineClamp: PropTypes.number, }; ItemGroup.isMenuItemGroup = true; export default ItemGroup;