Skip to content

Commit e8c07d0

Browse files
committed
Use filtered suggestions
1 parent a23e911 commit e8c07d0

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

src/components/input/autocomplete/index.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import useAutocomplete from "./useAutocomplete"
66

77
const Autocomplete = forwardRef(({ value, autocompleteProps, onInputChange, onEsc }, ref) => {
88
const [activeIndex, setActiveIndex] = useState(0)
9-
const { autocompleteOpen, close, suggestions, onItemClick } = useAutocomplete({
9+
const { autocompleteOpen, close, filteredSuggestions, onItemClick } = useAutocomplete({
1010
value,
1111
onInputChange,
1212
autocompleteProps,
@@ -18,20 +18,20 @@ const Autocomplete = forwardRef(({ value, autocompleteProps, onInputChange, onEs
1818
onEsc()
1919
close()
2020
} else if (e.code == "Enter") {
21-
onItemClick(suggestions[activeIndex]?.value)
21+
onItemClick(filteredSuggestions[activeIndex]?.value)
2222
onEsc()
2323
close()
2424
}
2525
},
26-
[activeIndex, suggestions, onItemClick, onEsc, close]
26+
[activeIndex, filteredSuggestions, onItemClick, onEsc, close]
2727
)
2828

2929
return (
3030
autocompleteOpen && (
3131
<StyledOptionsContainer>
3232
<Dropdown
3333
ref={ref}
34-
items={suggestions}
34+
items={filteredSuggestions}
3535
Item={DropdownItem}
3636
onItemClick={onItemClick}
3737
width="100%"

src/components/input/autocomplete/useAutocomplete.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { useState, useEffect } from "react"
44
const useAutocomplete = ({ value, onInputChange, autocompleteProps = {} }) => {
55
const [autocompleteOpen, setAutocompleteOpen] = useState()
66
const { suggestions = [] } = autocompleteProps || {}
7+
const [filteredSuggestions, setFilteredSuggestions] = useState(suggestions)
78

89
const close = useCallback(() => setAutocompleteOpen(false), [setAutocompleteOpen])
910

@@ -18,12 +19,14 @@ const useAutocomplete = ({ value, onInputChange, autocompleteProps = {} }) => {
1819
)
1920

2021
useEffect(() => {
21-
if (suggestions.length) {
22-
setAutocompleteOpen(!!value.length)
22+
if (suggestions.length && !!value) {
23+
const filtered = suggestions.filter(({ label }) => label.includes(value))
24+
setFilteredSuggestions(filtered)
25+
setAutocompleteOpen(!!filtered.length)
2326
}
24-
}, [suggestions, value, setAutocompleteOpen])
27+
}, [value, suggestions, setAutocompleteOpen, setFilteredSuggestions])
2528

26-
return { autocompleteOpen, close, suggestions, onItemClick }
29+
return { autocompleteOpen, close, filteredSuggestions, onItemClick }
2730
}
2831

2932
export default useAutocomplete

0 commit comments

Comments
 (0)