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[] = (