From 5827568ef882ae5a474f37ff5c843e931528ebe8 Mon Sep 17 00:00:00 2001 From: Marek Piechut Date: Mon, 9 Oct 2017 13:38:00 +0200 Subject: Add hourStep, minuteStep and secondStep props to control intervals in picker --- src/Panel.jsx | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'src/Panel.jsx') diff --git a/src/Panel.jsx b/src/Panel.jsx index 1953ad4..468eb37 100644 --- a/src/Panel.jsx +++ b/src/Panel.jsx @@ -8,9 +8,9 @@ import classNames from 'classnames'; function noop() { } -function generateOptions(length, disabledOptions, hideDisabledOptions) { +function generateOptions(length, disabledOptions, hideDisabledOptions, step = 1) { const arr = []; - for (let value = 0; value < length; value++) { + for (let value = 0; value < length; value += step) { if (!disabledOptions || disabledOptions.indexOf(value) < 0 || !hideDisabledOptions) { arr.push(value); } @@ -39,6 +39,9 @@ class Panel extends Component { showSecond: PropTypes.bool, onClear: PropTypes.func, use12Hours: PropTypes.bool, + hourStep: PropTypes.number, + minuteStep: PropTypes.number, + secondStep: PropTypes.number, addon: PropTypes.func, }; @@ -90,6 +93,7 @@ class Panel extends Component { prefixCls, className, placeholder, disabledHours, disabledMinutes, disabledSeconds, hideDisabledOptions, allowEmpty, showHour, showMinute, showSecond, format, defaultOpenValue, clearText, onEsc, addon, use12Hours, onClear, + hourStep, minuteStep, secondStep, } = this.props; const { value, currentSelectPanel, @@ -98,9 +102,15 @@ class Panel extends Component { const disabledMinuteOptions = disabledMinutes(value ? value.hour() : null); const disabledSecondOptions = disabledSeconds(value ? value.hour() : null, value ? value.minute() : null); - const hourOptions = generateOptions(24, disabledHourOptions, hideDisabledOptions); - const minuteOptions = generateOptions(60, disabledMinuteOptions, hideDisabledOptions); - const secondOptions = generateOptions(60, disabledSecondOptions, hideDisabledOptions); + const hourOptions = generateOptions( + 24, disabledHourOptions, hideDisabledOptions, hourStep + ); + const minuteOptions = generateOptions( + 60, disabledMinuteOptions, hideDisabledOptions, minuteStep + ); + const secondOptions = generateOptions( + 60, disabledSecondOptions, hideDisabledOptions, secondStep + ); return (
-- cgit v1.2.3