diff --git a/src/PickerInput/hooks/useRangeValue.ts b/src/PickerInput/hooks/useRangeValue.ts index f7267f9d5..4c8df734d 100644 --- a/src/PickerInput/hooks/useRangeValue.ts +++ b/src/PickerInput/hooks/useRangeValue.ts @@ -283,10 +283,11 @@ export default function useRangeValue !val); onChange( // Return null directly if all date are empty - isNullValue && clone.every((val) => !val) ? null : clone, - getDateTexts(clone), + isNullValue && everyEmpty ? null : clone, + everyEmpty ? null : getDateTexts(clone), ); } } diff --git a/tests/multiple.spec.tsx b/tests/multiple.spec.tsx index 67fa69df4..ee1af0495 100644 --- a/tests/multiple.spec.tsx +++ b/tests/multiple.spec.tsx @@ -2,7 +2,7 @@ import { fireEvent, render } from '@testing-library/react'; import { resetWarned } from '@rc-component/util/lib/warning'; import React from 'react'; -import { DayPicker, getDay, isOpen, openPicker, selectCell } from './util/commonUtil'; +import { clearValue, DayPicker, getDay, isOpen, openPicker, selectCell } from './util/commonUtil'; const fakeTime = getDay('1990-09-03 00:00:00').valueOf(); @@ -57,6 +57,8 @@ describe('Picker.Multiple', () => { ]); expect(onChange.mock.calls[0][0]).toHaveLength(3); + clearValue(); + expect(onChange).toHaveBeenCalledWith(null, null); }); it('panel click to remove', () => { diff --git a/tests/picker.spec.tsx b/tests/picker.spec.tsx index b3a40e10f..2034bad0b 100644 --- a/tests/picker.spec.tsx +++ b/tests/picker.spec.tsx @@ -283,7 +283,7 @@ describe('Picker.Basic', () => { onChange.mockReset(); clearValue(); - expect(onChange).toHaveBeenCalledWith(null, ''); + expect(onChange).toHaveBeenCalledWith(null, null); expect(isOpen()).toBeFalsy(); openPicker(container); diff --git a/tests/range.spec.tsx b/tests/range.spec.tsx index b5173a656..4a500236b 100644 --- a/tests/range.spec.tsx +++ b/tests/range.spec.tsx @@ -202,7 +202,7 @@ describe('Picker.Range', () => { expect(onChange).toHaveBeenCalledWith([expect.anything(), null], ['1990-09-11', '']); clearValue(); - expect(onChange).toHaveBeenCalledWith(null, ['', '']); + expect(onChange).toHaveBeenCalledWith(null, null); onChange.mockReset(); // Not allow empty with startDate