From 71bd9bc11f2ca6068f7977ff3511b2798f73d0c6 Mon Sep 17 00:00:00 2001 From: MG12 Date: Mon, 14 Dec 2015 00:50:41 +0800 Subject: update disabled options --- src/TimePicker.jsx | 12 ++++++------ src/module/Combobox.jsx | 22 ++++++++++++++-------- src/module/Header.jsx | 15 +++++++++------ src/module/Panel.jsx | 19 +++++++++---------- 4 files changed, 38 insertions(+), 30 deletions(-) (limited to 'src') diff --git a/src/TimePicker.jsx b/src/TimePicker.jsx index fb855e2..ad4e834 100644 --- a/src/TimePicker.jsx +++ b/src/TimePicker.jsx @@ -34,9 +34,9 @@ const Picker = React.createClass({ style: PropTypes.object, className: PropTypes.string, showSecond: PropTypes.bool, - disabledHours: PropTypes.array, - disabledMinutes: PropTypes.array, - disabledSeconds: PropTypes.array, + disabledHours: PropTypes.func, + disabledMinutes: PropTypes.func, + disabledSeconds: PropTypes.func, hideDisabledOptions: PropTypes.bool, onChange: PropTypes.func, onOpen: PropTypes.func, @@ -55,9 +55,9 @@ const Picker = React.createClass({ allowEmpty: true, showHour: true, showSecond: true, - disabledHours: null, - disabledMinutes: null, - disabledSeconds: null, + disabledHours: noop, + disabledMinutes: noop, + disabledSeconds: noop, hideDisabledOptions: false, placement: 'bottomLeft', onChange: noop, diff --git a/src/module/Combobox.jsx b/src/module/Combobox.jsx index 1e172a7..7374b39 100644 --- a/src/module/Combobox.jsx +++ b/src/module/Combobox.jsx @@ -31,9 +31,9 @@ const Combobox = React.createClass({ hourOptions: PropTypes.array, minuteOptions: PropTypes.array, secondOptions: PropTypes.array, - disabledHours: PropTypes.array, - disabledMinutes: PropTypes.array, - disabledSeconds: PropTypes.array, + disabledHours: PropTypes.func, + disabledMinutes: PropTypes.func, + disabledSeconds: PropTypes.func, onCurrentSelectPanelChange: PropTypes.func, }, @@ -64,10 +64,12 @@ const Combobox = React.createClass({ if (!showHour) { return null; } + const disabledOptions = disabledHours(); + return ( formatOption(option, disabledMinutes))} + options={minuteOptions.map(option => formatOption(option, disabledOptions))} selectedIndex={minuteOptions.indexOf(minute)} type="minute" onSelect={this.onItemChange} @@ -91,14 +95,16 @@ const Combobox = React.createClass({ }, getSecondSelect(second) { - const { prefixCls, secondOptions, disabledSeconds, showSecond } = this.props; + const { prefixCls, secondOptions, disabledSeconds, showSecond, value } = this.props; if (!showSecond) { return null; } + const disabledOptions = disabledSeconds(value.getHourOfDay(), value.getMinutes()); + return (