From d90428a6df85d64fea577c3197c869d002312eae Mon Sep 17 00:00:00 2001 From: zombiej Date: Fri, 28 Feb 2020 17:10:10 +0800 Subject: [PATCH 1/2] reset when closed --- src/Picker.tsx | 2 ++ src/RangePicker.tsx | 4 ++++ src/hooks/useValueTexts.ts | 16 +++++++--------- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/Picker.tsx b/src/Picker.tsx index 758627279..c0e7bc9bd 100644 --- a/src/Picker.tsx +++ b/src/Picker.tsx @@ -326,6 +326,8 @@ function InnerPicker(props: PickerProps) { if (!valueTexts.length || valueTexts[0] === '') { triggerTextChange(''); + } else if (!valueTexts.includes(text)) { + resetText(); } } }, [mergedOpen, valueTexts]); diff --git a/src/RangePicker.tsx b/src/RangePicker.tsx index 55da9be48..4202b786f 100644 --- a/src/RangePicker.tsx +++ b/src/RangePicker.tsx @@ -614,9 +614,13 @@ function InnerRangePicker(props: RangePickerProps) { if (!startValueTexts.length || startValueTexts[0] === '') { triggerStartTextChange(''); + } else if (!startValueTexts.includes(startText)) { + resetStartText(); } if (!endValueTexts.length || endValueTexts[0] === '') { triggerEndTextChange(''); + } else if (!endValueTexts.includes(endText)) { + resetEndText(); } } }, [mergedOpen, startValueTexts, endValueTexts]); diff --git a/src/hooks/useValueTexts.ts b/src/hooks/useValueTexts.ts index e16bd0b94..585b99d8e 100644 --- a/src/hooks/useValueTexts.ts +++ b/src/hooks/useValueTexts.ts @@ -2,17 +2,15 @@ import * as React from 'react'; import { GenerateConfig } from '../generate'; import { Locale } from '../interface'; +interface ValueTextConfig { + formatList: string[]; + generateConfig: GenerateConfig; + locale: Locale; +} + export default function useValueTexts( value: DateType | null, - { - formatList, - generateConfig, - locale, - }: { - formatList: string[]; - generateConfig: GenerateConfig; - locale: Locale; - }, + { formatList, generateConfig, locale }: ValueTextConfig, ) { return React.useMemo(() => { if (!value) { From 354eacc69a32bc4d1e0acba9578ef1f7756269ea Mon Sep 17 00:00:00 2001 From: zombiej Date: Fri, 28 Feb 2020 17:24:18 +0800 Subject: [PATCH 2/2] add test case --- tests/picker.spec.tsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/picker.spec.tsx b/tests/picker.spec.tsx index 1346b63f4..894a4afd1 100644 --- a/tests/picker.spec.tsx +++ b/tests/picker.spec.tsx @@ -587,4 +587,21 @@ describe('Picker.Basic', () => { errSpy.mockRestore(); }); + + it('close to reset', () => { + const wrapper = mount( + , + ); + + wrapper.openPicker(); + wrapper.find('input').simulate('change', { + target: { + value: 'aaaaa', + }, + }); + expect(wrapper.find('input').props().value).toEqual('aaaaa'); + + wrapper.closePicker(); + expect(wrapper.find('input').props().value).toEqual('2000-01-01'); + }); });