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={