dh-c
Version:
The front-end development engineers jimberton gulp react component
49 lines (42 loc) • 1.17 kB
JSX
import React from 'react';
import RcDropdown from 'rc-dropdown';
import Icon from '../icon';
const prefixCls = 'dh-dropdown';
class Dropdown extends React.Component {
static defaultProps = {
prefixCls: 'dh-dropdown',
mouseEnterDelay: 0.15,
mouseLeaveDelay: 0.1,
placement: 'bottomLeft',
icon: 'arrow-down'
};
getChildrenElement() {
const { children, title, icon } = this.props;
if (!children) {
return (
<div className={`${prefixCls}-title`}>
<span>{ title || '请选择' }</span>
<Icon type={icon} />
</div>
)
} else {
return children;
}
}
getTransitionName() {
const { placement = '' } = this.props;
if (placement.indexOf('top') >= 0) {
return 'slide-down';
}
return 'slide-up';
}
render() {
const dropdownTrigger = this.getChildrenElement();
return (
<RcDropdown transitionName={this.getTransitionName()} {...this.props}>
{ dropdownTrigger }
</RcDropdown>
)
}
}
export default Dropdown;