From 6e19d98f816b28d8ce950cbbc03c562336d66698 Mon Sep 17 00:00:00 2001 From: admin Date: Sun, 7 Sep 2025 00:02:29 +0300 Subject: [PATCH] feat: update ProductSelect to use server-side search value for improved filtering --- src/components/ProductSelect/ProductSelect.tsx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) 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