From 6da4604add2ea5bd4a86cbb366d035386b1e2fdb Mon Sep 17 00:00:00 2001 From: DimitrovDev89 <85161301+DimitrovDev89@users.noreply.github.com> Date: Mon, 8 Apr 2024 13:02:39 +0300 Subject: [PATCH] selecting picker panel values different than the picker shouldn't autoselect dates --- src/PickerInput/SinglePicker.tsx | 4 +++- tests/picker.spec.tsx | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/PickerInput/SinglePicker.tsx b/src/PickerInput/SinglePicker.tsx index 9fe862d84..bb9ebed55 100644 --- a/src/PickerInput/SinglePicker.tsx +++ b/src/PickerInput/SinglePicker.tsx @@ -444,7 +444,9 @@ function Picker( const nextValues = multiple ? toggleDates(getCalendarValue(), date) : [date]; // Only trigger calendar event but not update internal `calendarValue` state - triggerCalendarChange(nextValues); + if(internalPicker === internalMode) { + triggerCalendarChange(nextValues); + } // >>> Trigger next active if !needConfirm // Fully logic check `useRangeValue` hook diff --git a/tests/picker.spec.tsx b/tests/picker.spec.tsx index d6751c775..e2eec004b 100644 --- a/tests/picker.spec.tsx +++ b/tests/picker.spec.tsx @@ -478,6 +478,20 @@ describe('Picker.Basic', () => { expect(document.querySelector('.rc-picker-date-panel')).toBeTruthy(); }); + it('date -> year -> month -> date: Selecting date when panel is different than the picker typ shouldn\'t auto-select dates: date -> year -> month -> date', () => { + const { container } = render(); + openPicker(container); + fireEvent.click(document.querySelector('.rc-picker-year-btn')); + + expect(document.querySelector('input').value).toEqual(''); + selectCell(1990); + expect(document.querySelector('input').value).toEqual(''); + selectCell('Jan'); + expect(document.querySelector('input').value).toEqual(''); + selectCell(3); + expect(document.querySelector('input').value).toEqual('1990-01-03'); + }); + it('time', () => { const onChange = jest.fn(); const onOk = jest.fn();