ant-design/components/select/index.tsx

52 lines
1.3 KiB
TypeScript
Raw Normal View History

import React from 'react';
import RcSelect, { Option, OptGroup } from 'rc-select';
2015-12-06 17:13:06 +08:00
import classNames from 'classnames';
2015-06-09 21:16:59 +08:00
export default class Select extends React.Component {
static Option = Option;
static OptGroup = OptGroup;
static defaultProps = {
prefixCls: 'ant-select',
transitionName: 'slide-up',
choiceTransitionName: 'zoom',
showSearch: false,
}
static contextTypes = {
antLocale: React.PropTypes.object,
}
2015-07-24 16:05:56 +08:00
render() {
2015-12-06 17:13:06 +08:00
let {
size, className, combobox, notFoundContent, prefixCls, showSearch, optionLabelProp,
2015-12-06 17:13:06 +08:00
} = this.props;
2015-11-12 21:28:02 +08:00
2015-12-06 17:13:06 +08:00
const cls = classNames({
2016-04-06 15:50:58 +08:00
[`${prefixCls}-lg`]: size === 'large',
[`${prefixCls}-sm`]: size === 'small',
2015-12-06 17:13:06 +08:00
[className]: !!className,
[`${prefixCls}-show-search`]: showSearch,
2015-12-06 17:13:06 +08:00
});
2015-11-12 21:28:02 +08:00
const { antLocale } = this.context;
if (antLocale && antLocale.Select) {
notFoundContent = notFoundContent || antLocale.Select.notFoundContent;
}
2015-12-06 17:13:06 +08:00
if (combobox) {
notFoundContent = null;
// children 带 dom 结构时,无法填入输入框
optionLabelProp = optionLabelProp || 'value';
2015-08-23 16:00:05 +08:00
}
2015-12-06 17:13:06 +08:00
2015-06-15 17:17:23 +08:00
return (
<RcSelect {...this.props}
2015-12-06 17:13:06 +08:00
className={cls}
optionLabelProp={optionLabelProp || 'children'}
notFoundContent={notFoundContent}
/>
2015-06-15 17:17:23 +08:00
);
}
}