From 12b29d4009e260b3ec91df5cf4fdaa0a8497eca9 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 9 Mar 2026 10:24:17 +0000
Subject: [PATCH 1/5] Initial plan
From 45df2465fdcd1c10af4137231afcaeeeffe32602 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 9 Mar 2026 11:06:48 +0000
Subject: [PATCH 2/5] fix: hide Showing X of Y items label and categories
filter during catalog search on iOS
Co-authored-by: andrew-bierman <94939237+andrew-bierman@users.noreply.github.com>
---
.../catalog/screens/CatalogItemsScreen.tsx | 34 +++++++++++--------
1 file changed, 19 insertions(+), 15 deletions(-)
diff --git a/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx b/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
index b9e937fc40..77c6aac3a0 100644
--- a/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
+++ b/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
@@ -161,14 +161,16 @@ function CatalogItemsScreen() {
}}
/>
-
+ {!isSearching && (
+
+ )}
}
ListHeaderComponent={
-
-
- {totalItemsText}
+ !isSearching ? (
+
+
+ {totalItemsText}
+
+ {paginatedItems.length > 0 && (
+ {showingText}
+ )}
- {paginatedItems.length > 0 && (
- {showingText}
- )}
-
+ ) : null
}
ListEmptyComponent={
From c3e7a85a10922f406c96de80cbd9386f522f4060 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 9 Mar 2026 16:57:53 +0000
Subject: [PATCH 3/5] fix: use raw searchValue for immediate UI gating,
debouncedValue only for query
Co-authored-by: andrew-bierman <94939237+andrew-bierman@users.noreply.github.com>
---
apps/expo/features/catalog/screens/CatalogItemsScreen.tsx | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx b/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
index 77c6aac3a0..a301cb815d 100644
--- a/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
+++ b/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
@@ -33,7 +33,8 @@ 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 isQueryReady = debouncedSearchValue.trim().length > 0;
const {
data: categories,
@@ -102,7 +103,7 @@ function CatalogItemsScreen() {
content: (
{isSearching ? (
- isVectorLoading ? (
+ isVectorLoading || !isQueryReady ? (
From 9b459bc3b988df22fb5188a212eaf88ff8a01635 Mon Sep 17 00:00:00 2001
From: Andrew Bierman
Date: Mon, 9 Mar 2026 12:14:37 -0600
Subject: [PATCH 4/5] Fix searchResults undefined crash and remove unused
variable
- Default searchResults to empty array to prevent TypeError when
vectorResult is undefined (e.g., before results arrive or on error)
- Remove unused _isVectorFetching destructured variable
---
apps/expo/features/catalog/screens/CatalogItemsScreen.tsx | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx b/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
index a301cb815d..eec26bb4d2 100644
--- a/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
+++ b/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
@@ -60,10 +60,9 @@ function CatalogItemsScreen() {
const {
data: vectorResult,
isLoading: isVectorLoading,
- isFetching: _isVectorFetching,
error: vectorError,
} = useVectorSearch({ query: debouncedSearchValue, limit: 10 });
- const searchResults = vectorResult?.items;
+ const searchResults: CatalogItem[] = vectorResult?.items ?? [];
const paginatedItems: CatalogItem[] = (
paginatedData?.pages.flatMap((page) => page.items) ?? []
From 8341f1c97118346b42dff851ae9c6ab272ce42d3 Mon Sep 17 00:00:00 2001
From: Anmol Verma
Date: Tue, 10 Mar 2026 15:15:25 +0530
Subject: [PATCH 5/5] remove animate-pulse and use trimmedquery in vector
search
---
apps/expo/components/CategoriesFilter.tsx | 2 +-
apps/expo/features/catalog/screens/CatalogItemsScreen.tsx | 5 +++--
2 files changed, 4 insertions(+), 3 deletions(-)
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 eec26bb4d2..b3796cd5e3 100644
--- a/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
+++ b/apps/expo/features/catalog/screens/CatalogItemsScreen.tsx
@@ -34,7 +34,8 @@ function CatalogItemsScreen() {
const [debouncedSearchValue] = useDebounce(searchValue, 400);
const isSearching = searchValue.trim().length > 0;
- const isQueryReady = debouncedSearchValue.trim().length > 0;
+ const trimmedQuery = debouncedSearchValue.trim();
+ const isQueryReady = trimmedQuery.length > 0;
const {
data: categories,
@@ -61,7 +62,7 @@ function CatalogItemsScreen() {
data: vectorResult,
isLoading: isVectorLoading,
error: vectorError,
- } = useVectorSearch({ query: debouncedSearchValue, limit: 10 });
+ } = useVectorSearch({ query: trimmedQuery, limit: 10 });
const searchResults: CatalogItem[] = vectorResult?.items ?? [];
const paginatedItems: CatalogItem[] = (