X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FTimePicker.jsx;h=4d7d4d6c7416c2953711abd6a8b054273de45b7a;hb=73fb171157dd0eb56a92d57cf20ddaf937e9b607;hp=99d1008740b7e5ba895e1ee40ce1e871e199f30d;hpb=3b3350d5d710a7caf14926dfcce3684d3df3aff8;p=github%2Ffretlink%2Ftime-picker.git diff --git a/src/TimePicker.jsx b/src/TimePicker.jsx index 99d1008..4d7d4d6 100644 --- a/src/TimePicker.jsx +++ b/src/TimePicker.jsx @@ -29,6 +29,7 @@ const Picker = React.createClass({ placeholder: PropTypes.string, format: PropTypes.string, showHour: PropTypes.bool, + showMinute: PropTypes.bool, showSecond: PropTypes.bool, style: PropTypes.object, className: PropTypes.string, @@ -40,6 +41,8 @@ const Picker = React.createClass({ onOpen: PropTypes.func, onClose: PropTypes.func, addon: PropTypes.func, + name: PropTypes.string, + autoComplete: PropTypes.string, }, getDefaultProps() { @@ -53,6 +56,7 @@ const Picker = React.createClass({ defaultOpenValue: moment(), allowEmpty: true, showHour: true, + showMinute: true, showSecond: true, disabledHours: noop, disabledMinutes: noop, @@ -67,6 +71,7 @@ const Picker = React.createClass({ }, getInitialState() { + this.saveInputRef = refFn.bind(this, 'picker'); this.savePanelRef = refFn.bind(this, 'panelInstance'); const { defaultOpen, defaultValue, open = defaultOpen, value = defaultValue } = this.props; return { @@ -102,7 +107,7 @@ const Picker = React.createClass({ onEsc() { this.setOpen(false); - this.refs.picker.focus(); + this.focus(); }, onKeyDown(e) { @@ -121,24 +126,22 @@ const Picker = React.createClass({ }, getFormat() { - const format = this.props.format; + const { format, showHour, showMinute, showSecond } = this.props; if (format) { return format; } - if (!this.props.showSecond) { - return 'HH:mm'; - } - if (!this.props.showHour) { - return 'mm:ss'; - } - return 'HH:mm:ss'; + return [ + showHour ? 'HH' : '', + showMinute ? 'mm' : '', + showSecond ? 'ss' : '', + ].filter(item => !!item).join(':'); }, getPanelElement() { const { prefixCls, placeholder, disabledHours, disabledMinutes, disabledSeconds, hideDisabledOptions, - allowEmpty, showHour, showSecond, defaultOpenValue, clearText, + allowEmpty, showHour, showMinute, showSecond, defaultOpenValue, clearText, addon, } = this.props; return ( @@ -151,6 +154,7 @@ const Picker = React.createClass({ onClear={this.onPanelClear} defaultOpenValue={defaultOpenValue} showHour={showHour} + showMinute={showMinute} showSecond={showSecond} onEsc={this.onEsc} allowEmpty={allowEmpty} @@ -182,15 +186,19 @@ const Picker = React.createClass({ } }, + focus() { + this.picker.focus(); + }, + render() { const { prefixCls, placeholder, placement, align, disabled, transitionName, style, className, showHour, - showSecond, getPopupContainer, + showMinute, showSecond, getPopupContainer, name, autoComplete, } = this.props; const { open, value } = this.state; let popupClassName; - if (!showHour || !showSecond) { + if (!showHour || !showMinute || !showSecond) { popupClassName = `${prefixCls}-panel-narrow`; } return ( @@ -211,10 +219,14 @@ const Picker = React.createClass({