Skip to content

Commit f700a26

Browse files
authored
Reset input value when Picker close (#28)
* reset when closed * add test case
1 parent 3dbbc73 commit f700a26

File tree

4 files changed

+30
-9
lines changed

4 files changed

+30
-9
lines changed

src/Picker.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,8 @@ function InnerPicker<DateType>(props: PickerProps<DateType>) {
326326

327327
if (!valueTexts.length || valueTexts[0] === '') {
328328
triggerTextChange('');
329+
} else if (!valueTexts.includes(text)) {
330+
resetText();
329331
}
330332
}
331333
}, [mergedOpen, valueTexts]);

src/RangePicker.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -614,9 +614,13 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
614614

615615
if (!startValueTexts.length || startValueTexts[0] === '') {
616616
triggerStartTextChange('');
617+
} else if (!startValueTexts.includes(startText)) {
618+
resetStartText();
617619
}
618620
if (!endValueTexts.length || endValueTexts[0] === '') {
619621
triggerEndTextChange('');
622+
} else if (!endValueTexts.includes(endText)) {
623+
resetEndText();
620624
}
621625
}
622626
}, [mergedOpen, startValueTexts, endValueTexts]);

src/hooks/useValueTexts.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,15 @@ import * as React from 'react';
22
import { GenerateConfig } from '../generate';
33
import { Locale } from '../interface';
44

5+
interface ValueTextConfig<DateType> {
6+
formatList: string[];
7+
generateConfig: GenerateConfig<DateType>;
8+
locale: Locale;
9+
}
10+
511
export default function useValueTexts<DateType>(
612
value: DateType | null,
7-
{
8-
formatList,
9-
generateConfig,
10-
locale,
11-
}: {
12-
formatList: string[];
13-
generateConfig: GenerateConfig<DateType>;
14-
locale: Locale;
15-
},
13+
{ formatList, generateConfig, locale }: ValueTextConfig<DateType>,
1614
) {
1715
return React.useMemo<string[]>(() => {
1816
if (!value) {

tests/picker.spec.tsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -587,4 +587,21 @@ describe('Picker.Basic', () => {
587587

588588
errSpy.mockRestore();
589589
});
590+
591+
it('close to reset', () => {
592+
const wrapper = mount(
593+
<MomentPicker defaultValue={getMoment('2000-01-01')} />,
594+
);
595+
596+
wrapper.openPicker();
597+
wrapper.find('input').simulate('change', {
598+
target: {
599+
value: 'aaaaa',
600+
},
601+
});
602+
expect(wrapper.find('input').props().value).toEqual('aaaaa');
603+
604+
wrapper.closePicker();
605+
expect(wrapper.find('input').props().value).toEqual('2000-01-01');
606+
});
590607
});

0 commit comments

Comments
 (0)