diff --git a/src/RangePicker.tsx b/src/RangePicker.tsx index 438ef0895..ae468ae30 100644 --- a/src/RangePicker.tsx +++ b/src/RangePicker.tsx @@ -10,6 +10,7 @@ import { DisabledTimes, DisabledTime, PickerMode, + PanelMode, } from './interface'; import { toArray } from './utils/miscUtil'; import RangeContext from './RangeContext'; @@ -45,6 +46,7 @@ export interface RangePickerSharedProps { separator?: React.ReactNode; allowEmpty?: [boolean, boolean]; selectable?: [boolean, boolean]; + mode?: [PanelMode, PanelMode]; onChange?: ( value: RangeValue, formatString: [string, string], @@ -68,6 +70,7 @@ type OmitPickerProps = Omit< | 'disabledTime' | 'showToday' | 'showTime' + | 'mode' >; export interface RangePickerBaseProps @@ -116,6 +119,7 @@ function InternalRangePicker( defaultValue, defaultPickerValue, separator = '~', + mode, picker, pickerRef, locale, @@ -331,6 +335,7 @@ function InternalRangePicker( placeholder={placeholder && placeholder[0]} defaultPickerValue={defaultPickerValue && defaultPickerValue[0]} {...{ disabledTime: disabledStartTime, showTime: startShowTime }} // Fix ts define + mode={mode && mode[0]} disabled={disabled || mergedSelectable[0] === false} disabledDate={disabledStartDate} onChange={date => { @@ -348,6 +353,7 @@ function InternalRangePicker( placeholder={placeholder && placeholder[1]} defaultPickerValue={defaultPickerValue && defaultPickerValue[1]} {...{ disabledTime: disabledEndTime, showTime: endShowTime }} // Fix ts define + mode={mode && mode[1]} disabled={disabled || mergedSelectable[1] === false} disabledDate={disabledEndDate} onChange={date => { diff --git a/tests/range.spec.tsx b/tests/range.spec.tsx index ffb767782..7b0c80d93 100644 --- a/tests/range.spec.tsx +++ b/tests/range.spec.tsx @@ -447,4 +447,13 @@ describe('Range', () => { matchValues(wrapper, '1990-09-13 01:02:03', '1990-09-23 05:06:07'); }); }); + + it('mode is array', () => { + const wrapper = mount(); + wrapper.openPicker(); + expect(wrapper.find('.rc-picker-year-panel')).toHaveLength(1); + + wrapper.openPicker(1); + expect(wrapper.find('.rc-picker-month-panel')).toHaveLength(1); + }); });