From 8a3171d7c48add19497f9d9673ae28e045f4ff4a Mon Sep 17 00:00:00 2001 From: Prospector <6166773+Prospector@users.noreply.github.com> Date: Fri, 15 Aug 2025 13:04:51 -0700 Subject: [PATCH] Fix search always resetting back to page 1 --- apps/app-frontend/src/pages/Browse.vue | 28 ++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/apps/app-frontend/src/pages/Browse.vue b/apps/app-frontend/src/pages/Browse.vue index eb3498915..ca1e57db0 100644 --- a/apps/app-frontend/src/pages/Browse.vue +++ b/apps/app-frontend/src/pages/Browse.vue @@ -162,6 +162,8 @@ const { createPageParams, } = useSearch(projectTypes, tags, instanceFilters) +const previousFilterState = ref('') + const offline = ref(!navigator.onLine) window.addEventListener('offline', () => { offline.value = true @@ -221,8 +223,21 @@ async function refreshSearch() { ) } } - results.value = rawResults.result - currentPage.value = 1 + results.value = rawResults.result + + const currentFilterState = JSON.stringify({ + query: query.value, + filters: currentFilters.value, + sort: currentSortType.value, + maxResults: maxResults.value, + projectTypes: projectTypes.value + }) + + if (previousFilterState.value && previousFilterState.value !== currentFilterState) { + currentPage.value = 1 + } + + previousFilterState.value = currentFilterState const persistentParams: LocationQuery = {} @@ -382,6 +397,15 @@ const handleOptionsClick = (args) => { } await refreshSearch() + +// Initialize previousFilterState after first search +previousFilterState.value = JSON.stringify({ + query: query.value, + filters: currentFilters.value, + sort: currentSortType.value, + maxResults: maxResults.value, + projectTypes: projectTypes.value +})