diff --git a/src/components/ProductSelect/ProductSelect.tsx b/src/components/ProductSelect/ProductSelect.tsx index 566316b..6c9ffde 100644 --- a/src/components/ProductSelect/ProductSelect.tsx +++ b/src/components/ProductSelect/ProductSelect.tsx @@ -16,7 +16,8 @@ type Props = Omit, "data"> & RestProps; const ProductSelect: FC = (props: Props) => { const [searchValue, setSearchValue] = useState(""); - const [debounced] = useDebouncedValue(searchValue, 500); + const [searchValueServer, setSearchValueServer] = useState(""); + const [debounced] = useDebouncedValue(searchValueServer, 500); const { products, isLoading } = useProductsList({ clientId: props.clientId, searchInput: debounced, @@ -37,19 +38,22 @@ const ProductSelect: FC = (props: Props) => { return filterProducts(search).map(product => ({ label: product.name, value: product.id.toString() })); }; const setSearchValueImpl = (value: string) => { - value = value.toLowerCase().trim(); - if (!value) return; - if (filterProducts(value)) return; setSearchValue(value); + const filtered = filterProducts(value); + if (filtered && filtered.length > 0) { + return; + } + setSearchValueServer(value); }; return ( ) : null } + searchValue={searchValue} onSearchChange={setSearchValueImpl} renderOption={getRenderOptions(products)} searchable