From dd40ea601d870ad6258471d80818e570004cfb88 Mon Sep 17 00:00:00 2001 From: Kermit Date: Fri, 24 Jul 2020 10:15:06 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20disabledDate=20is=20not?= =?UTF-8?q?=20work=20when=20selecting=20time=20directly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/RangePicker.tsx | 4 +++- tests/range.spec.tsx | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/RangePicker.tsx b/src/RangePicker.tsx index 31ba3e125..a8c6a0253 100644 --- a/src/RangePicker.tsx +++ b/src/RangePicker.tsx @@ -858,7 +858,9 @@ function InnerRangePicker(props: RangePickerProps) { prefixCls, components, needConfirmButton, - okDisabled: !getValue(selectedValue, mergedActivePickerIndex), + okDisabled: + !getValue(selectedValue, mergedActivePickerIndex) || + (disabledDate && disabledDate(selectedValue[mergedActivePickerIndex])), locale, rangeList, onOk: () => { diff --git a/tests/range.spec.tsx b/tests/range.spec.tsx index 6ca193e76..30975cc92 100644 --- a/tests/range.spec.tsx +++ b/tests/range.spec.tsx @@ -1501,4 +1501,40 @@ describe('Picker.Range', () => { wrapper.closePicker(1); }); }); + + // https://github.com/ant-design/ant-design/issues/25746 + it('ok button should be disabled when disabledDate is true', () => { + const disabledDate = () => { + // Can not select days before today and today + return true; + }; + const wrapper = mount( + , + ); + + wrapper.openPicker(); + + expect(wrapper.find('.rc-picker-ok button').props().disabled).toBeTruthy(); + + wrapper + .find('PickerPanel') + .first() + .find('.rc-picker-time-panel-column') + .first() + .find('li') + .at(6) + .simulate('click'); + + expect( + wrapper + .find('input') + .first() + .props().value, + ).toEqual('2020-07-24 06:00:00'); + expect(wrapper.find('.rc-picker-ok button').props().disabled).toBeTruthy(); + }); });