import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import ConfigProvider from '../config-provider'; /** * Input.Group */ class Group extends React.Component { static propTypes = { /** * 样式前缀 */ prefix: PropTypes.string, className: PropTypes.string, style: PropTypes.object, children: PropTypes.node, /** * 输入框前附加内容 */ addonBefore: PropTypes.node, /** * 输入框前附加内容css */ addonBeforeClassName: PropTypes.string, /** * 输入框后附加内容 */ addonAfter: PropTypes.node, /** * 输入框后额外css */ addonAfterClassName: PropTypes.string, /** * rtl */ rtl: PropTypes.bool, }; static defaultProps = { prefix: 'next-', }; render() { const { className, style, children, prefix, addonBefore, addonAfter, addonBeforeClassName, addonAfterClassName, rtl, ...others } = this.props; const cls = classNames({ [`${prefix}input-group`]: true, [className]: !!className, }); const addonCls = `${prefix}input-group-addon`; const beforeCls = classNames(addonCls, { [`${prefix}before`]: true, [addonBeforeClassName]: addonBeforeClassName, }); const afterCls = classNames(addonCls, { [`${prefix}after`]: true, [addonAfterClassName]: addonAfterClassName, }); const before = addonBefore ? ( {addonBefore} ) : null; const after = addonAfter ? ( {addonAfter} ) : null; return ( {before} {children} {after} ); } } export default ConfigProvider.config(Group);