Skip to content

Commit 32086fd

Browse files
committed
fixup! core: refacto combo box
1 parent 65e0abf commit 32086fd

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

ui-core/src/components/inputs/ComboBox/useDefaultComboBox.ts

+8-9
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useEffect, useState } from 'react';
1+
import { useMemo, useState } from 'react';
22

33
const normalizeString = (str: string) => str.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
44

@@ -37,21 +37,20 @@ const defaultFilterSuggestions = <T>(
3737
};
3838

3939
const useDefaultComboBox = <T>(suggestions: T[], getSuggestionLabel: (suggestion: T) => string) => {
40-
const [filteredSuggestions, setFilteredSuggestions] = useState<T[]>(suggestions);
4140
const [query, setQuery] = useState('');
4241

42+
const filteredSuggestions = useMemo(
43+
() => defaultFilterSuggestions(getSuggestionLabel, suggestions, query),
44+
// eslint-disable-next-line react-hooks/exhaustive-deps
45+
[suggestions, query]
46+
);
47+
4348
const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {
4449
setQuery(e.target.value);
4550
};
4651

47-
useEffect(() => {
48-
const newSuggestions = defaultFilterSuggestions(getSuggestionLabel, suggestions, query);
49-
setFilteredSuggestions(newSuggestions);
50-
// eslint-disable-next-line react-hooks/exhaustive-deps
51-
}, [suggestions, query]);
52-
5352
const resetSuggestions = () => {
54-
setFilteredSuggestions(suggestions);
53+
setQuery('');
5554
};
5655

5756
return { suggestions: filteredSuggestions, onChange, resetSuggestions };

0 commit comments

Comments
 (0)