X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=src%2FPanel.jsx;h=648944d5182ed067e7f795c55727b3c0f8b96b25;hb=7211e9ba9d88c89444e7909190e7c51d298200ad;hp=1adb19a27c32ac122f4425e414b25a39917fc781;hpb=4e70ea0da45e572cd660f79ac98b6a25c640cb36;p=github%2Ffretlink%2Ftime-picker.git diff --git a/src/Panel.jsx b/src/Panel.jsx index 1adb19a..648944d 100644 --- a/src/Panel.jsx +++ b/src/Panel.jsx @@ -93,9 +93,27 @@ class Panel extends Component { this.props.onEsc(); } + disabledHours = () => { + const { use12Hours, disabledHours } = this.props; + let disabledOptions = disabledHours(); + if (use12Hours && Array.isArray(disabledOptions)) { + if (this.isAM()) { + disabledOptions = disabledOptions.filter(h => h < 12).map(h => (h === 0 ? 12 : h)); + } else { + disabledOptions = disabledOptions.map(h => (h === 12 ? 12 : h - 12)); + } + } + return disabledOptions; + } + + isAM() { + const value = (this.state.value || this.props.defaultOpenValue); + return value.hour() >= 0 && value.hour() < 12; + } + render() { const { - prefixCls, className, placeholder, disabledHours, disabledMinutes, + prefixCls, className, placeholder, disabledMinutes, disabledSeconds, hideDisabledOptions, allowEmpty, showHour, showMinute, showSecond, format, defaultOpenValue, clearText, onEsc, addon, use12Hours, onClear, focusOnOpen, onKeyDown, hourStep, minuteStep, secondStep, inputReadOnly, @@ -103,7 +121,7 @@ class Panel extends Component { const { value, currentSelectPanel, } = this.state; - const disabledHourOptions = disabledHours(); + const disabledHourOptions = this.disabledHours(); const disabledMinuteOptions = disabledMinutes(value ? value.hour() : null); const disabledSecondOptions = disabledSeconds(value ? value.hour() : null, value ? value.minute() : null); @@ -131,7 +149,7 @@ class Panel extends Component { hourOptions={hourOptions} minuteOptions={minuteOptions} secondOptions={secondOptions} - disabledHours={disabledHours} + disabledHours={this.disabledHours} disabledMinutes={disabledMinutes} disabledSeconds={disabledSeconds} onChange={this.onChange} @@ -153,11 +171,12 @@ class Panel extends Component { hourOptions={hourOptions} minuteOptions={minuteOptions} secondOptions={secondOptions} - disabledHours={disabledHours} + disabledHours={this.disabledHours} disabledMinutes={disabledMinutes} disabledSeconds={disabledSeconds} onCurrentSelectPanelChange={this.onCurrentSelectPanelChange} use12Hours={use12Hours} + isAM={this.isAM()} /> {addon(this)}