X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=src%2FTimePicker.jsx;h=d94ed940baffa48ff9868ad9ce659509639e79f6;hb=bf1d1cae92734df73f4c78420294687687951352;hp=aa3e0da726f009c6e54b69696945b8b382048765;hpb=dd63e6e7fa1d600d3656a4edbe5f5fc5410f443a;p=github%2Ffretlink%2Ftime-picker.git diff --git a/src/TimePicker.jsx b/src/TimePicker.jsx index aa3e0da..d94ed94 100644 --- a/src/TimePicker.jsx +++ b/src/TimePicker.jsx @@ -42,6 +42,8 @@ const Picker = React.createClass({ onClose: PropTypes.func, addon: PropTypes.func, name: PropTypes.string, + autoComplete: PropTypes.string, + use12Hours: PropTypes.bool, }, getDefaultProps() { @@ -66,6 +68,7 @@ const Picker = React.createClass({ onOpen: noop, onClose: noop, addon: noop, + use12Hours: false, }; }, @@ -125,10 +128,21 @@ const Picker = React.createClass({ }, getFormat() { - const { format, showHour, showMinute, showSecond } = this.props; + const { format, showHour, showMinute, showSecond, use12Hours } = this.props; if (format) { return format; } + + if (use12Hours) { + const fmtString = ([ + showHour ? 'h' : '', + showMinute ? 'mm' : '', + showSecond ? 'ss' : '', + ].filter(item => !!item).join(':')); + + return fmtString.concat(' a'); + } + return [ showHour ? 'HH' : '', showMinute ? 'mm' : '', @@ -141,7 +155,7 @@ const Picker = React.createClass({ prefixCls, placeholder, disabledHours, disabledMinutes, disabledSeconds, hideDisabledOptions, allowEmpty, showHour, showMinute, showSecond, defaultOpenValue, clearText, - addon, + addon, use12Hours, } = this.props; return ( ); }, - setOpen(open, callback) { + setOpen(open) { const { onOpen, onClose } = this.props; if (this.state.open !== open) { - this.setState({ - open, - }, callback); - const event = { - open, - }; + if (!('open' in this.props)) { + this.setState({ open }); + } if (open) { - onOpen(event); + onOpen({ open }); } else { - onClose(event); + onClose({ open }); } } }, @@ -193,11 +205,12 @@ const Picker = React.createClass({ const { prefixCls, placeholder, placement, align, disabled, transitionName, style, className, showHour, - showMinute, showSecond, getPopupContainer, name, + showMinute, showSecond, getPopupContainer, name, autoComplete, + use12Hours, } = this.props; const { open, value } = this.state; let popupClassName; - if (!showHour || !showMinute || !showSecond) { + if ((!showHour || !showMinute || !showSecond) && !use12Hours) { popupClassName = `${prefixCls}-panel-narrow`; } return ( @@ -225,6 +238,7 @@ const Picker = React.createClass({ readOnly onKeyDown={this.onKeyDown} disabled={disabled} value={value && value.format(this.getFormat()) || ''} + autoComplete={autoComplete} />