diff --git a/src/BaseSelect/index.tsx b/src/BaseSelect/index.tsx index cb2ac94a..fb7cd117 100644 --- a/src/BaseSelect/index.tsx +++ b/src/BaseSelect/index.tsx @@ -428,7 +428,7 @@ const BaseSelect = React.forwardRef((props, ref) // Close will clean up single mode search text React.useEffect(() => { - if (!mergedOpen && !multiple && mode !== 'combobox') { + if (!mergedOpen && !multiple && mode !== 'combobox' && displayValues?.length) { onInternalSearch('', false, false); } }, [mergedOpen]); diff --git a/tests/Select.test.tsx b/tests/Select.test.tsx index ce920b2b..3d21060e 100644 --- a/tests/Select.test.tsx +++ b/tests/Select.test.tsx @@ -76,6 +76,43 @@ describe('Select.Basic', () => { expectOpen(container); }); + it('should not clear searchValue', () => { + const App: React.FC = () => { + const [options, setOptions] = React.useState<{ label: string; value: string }[]>([]); + const [isFetching, setIsFetching] = React.useState(false); + + function handleSearch() { + setIsFetching(true); + setTimeout(() => { + setOptions([]); + setIsFetching(false); + }, 1000); + } + + return ( +