diff --git a/apps/expo/components/CategoriesFilter.tsx b/apps/expo/components/CategoriesFilter.tsx index 583d0e191c..a1cdb90203 100644 --- a/apps/expo/components/CategoriesFilter.tsx +++ b/apps/expo/components/CategoriesFilter.tsx @@ -62,7 +62,7 @@ export function CategoriesFilter({ )) : data.map(renderFilterChip)} diff --git a/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx b/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx index b9e937fc40..b3796cd5e3 100644 --- a/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx +++ b/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx @@ -33,7 +33,9 @@ function CatalogItemsScreen() { const [activeFilter, setActiveFilter] = useState<'All' | string>('All'); const [debouncedSearchValue] = useDebounce(searchValue, 400); - const isSearching = debouncedSearchValue.length > 0; + const isSearching = searchValue.trim().length > 0; + const trimmedQuery = debouncedSearchValue.trim(); + const isQueryReady = trimmedQuery.length > 0; const { data: categories, @@ -59,10 +61,9 @@ function CatalogItemsScreen() { const { data: vectorResult, isLoading: isVectorLoading, - isFetching: _isVectorFetching, error: vectorError, - } = useVectorSearch({ query: debouncedSearchValue, limit: 10 }); - const searchResults = vectorResult?.items; + } = useVectorSearch({ query: trimmedQuery, limit: 10 }); + const searchResults: CatalogItem[] = vectorResult?.items ?? []; const paginatedItems: CatalogItem[] = ( paginatedData?.pages.flatMap((page) => page.items) ?? [] @@ -102,7 +103,7 @@ function CatalogItemsScreen() { content: ( {isSearching ? ( - isVectorLoading ? ( + isVectorLoading || !isQueryReady ? ( @@ -161,14 +162,16 @@ function CatalogItemsScreen() { }} /> - + {!isSearching && ( + + )} } ListHeaderComponent={ - - - {totalItemsText} + !isSearching ? ( + + + {totalItemsText} + + {paginatedItems.length > 0 && ( + {showingText} + )} - {paginatedItems.length > 0 && ( - {showingText} - )} - + ) : null } ListEmptyComponent={