From 85d9a1b9e9c8c2a96afec1d9b413df85d8b45a7a Mon Sep 17 00:00:00 2001 From: AmyHuang82 Date: Tue, 26 Sep 2023 23:48:01 +0800 Subject: [PATCH 1/3] fix: check on wrong value in `RangePicker` `onSubmit` --- src/RangePicker.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RangePicker.tsx b/src/RangePicker.tsx index be155abaf..b2342ae89 100644 --- a/src/RangePicker.tsx +++ b/src/RangePicker.tsx @@ -632,7 +632,7 @@ function InnerRangePicker(props: RangePickerProps) { onSubmit: () => { if ( // When user typing disabledDate with keyboard and enter, this value will be empty - !selectedValue || + !selectedValue[index] || // Normal disabled check (disabledDate && disabledDate(selectedValue[index])) ) { From d57b8a1532d4d0bb3441817d2b439388798da189 Mon Sep 17 00:00:00 2001 From: AmyHuang82 Date: Wed, 18 Oct 2023 17:12:50 +0800 Subject: [PATCH 2/3] fix: prevent empty `selectedValue` --- src/RangePicker.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RangePicker.tsx b/src/RangePicker.tsx index b2342ae89..01abf0ce9 100644 --- a/src/RangePicker.tsx +++ b/src/RangePicker.tsx @@ -632,7 +632,7 @@ function InnerRangePicker(props: RangePickerProps) { onSubmit: () => { if ( // When user typing disabledDate with keyboard and enter, this value will be empty - !selectedValue[index] || + !selectedValue?.[index] || // Normal disabled check (disabledDate && disabledDate(selectedValue[index])) ) { From 4f8e9ec019c9f0793a6c15d75f5721e646a497c4 Mon Sep 17 00:00:00 2001 From: AmyHuang82 Date: Wed, 18 Oct 2023 19:54:46 +0800 Subject: [PATCH 3/3] test: range picker value should be empty array when typing invalid or disabledDate to start date --- tests/keyboard.spec.tsx | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/keyboard.spec.tsx b/tests/keyboard.spec.tsx index cb79e65e6..88db3f244 100644 --- a/tests/keyboard.spec.tsx +++ b/tests/keyboard.spec.tsx @@ -586,4 +586,25 @@ describe('Picker.Keyboard', () => { expect(isSame(onSelect.mock.calls[0][0], '1990-12-03')).toBeTruthy(); }); }); + + it('range picker value should be empty array when typing invalid or disabledDate to start date', () => { + const onCalendarChange = jest.fn(); + const now = new Date(); + const { container } = render( + date.month() < now.getMonth()} + />, + ); + + openPicker(container); + fireEvent.change(container.querySelector('input'), { target: { value: '1990-1-1' } }); + closePicker(container); + expect(onCalendarChange.mock.calls).toEqual([]); + + openPicker(container); + fireEvent.change(container.querySelector('input'), { target: { value: '2000-01-01' } }); + closePicker(container); + expect(onCalendarChange.mock.calls).toEqual([]); + }); });