From 0843330472357c5662a078cf2d0ac860a1eeae64 Mon Sep 17 00:00:00 2001 From: Roman Date: Sun, 8 Feb 2026 16:58:09 +0000 Subject: [PATCH 1/9] fix --- app/components/Header/SearchBox.vue | 48 +++++++++++++---------------- app/pages/index.vue | 12 +------- 2 files changed, 22 insertions(+), 38 deletions(-) diff --git a/app/components/Header/SearchBox.vue b/app/components/Header/SearchBox.vue index b99fa79cb..5ad018a2c 100644 --- a/app/components/Header/SearchBox.vue +++ b/app/components/Header/SearchBox.vue @@ -28,39 +28,23 @@ const searchQuery = shallowRef(normalizeSearchParam(route.query.q)) // Pages that have their own local filter using ?q const pagesWithLocalFilter = new Set(['~username', 'org']) -// Debounced URL update for search query const updateUrlQuery = debounce((value: string) => { - // Don't navigate away from pages that use ?q for local filtering - if (pagesWithLocalFilter.has(route.name as string)) { - return - } if (route.name === 'search') { router.replace({ query: { q: value || undefined } }) - return - } - if (!value) { - return } - - router.push({ - name: 'search', - query: { - q: value, - }, - }) }, 250) -// Watch input and debounce URL updates -watch(searchQuery, value => { - updateUrlQuery(value) +watch(searchQuery, (value) => { + if (route.name === 'search') { + updateUrlQuery(value) + } }) // Sync input with URL when navigating (e.g., back button) watch( () => route.query.q, - urlQuery => { - // Don't sync from pages that use ?q for local filtering - if (pagesWithLocalFilter.has(route.name as string)) { + (urlQuery) => { + if (pagesWithLocalFilter.has(route.name)) { return } const value = normalizeSearchParam(urlQuery) @@ -80,15 +64,25 @@ function handleSearchFocus() { } function handleSubmit() { - if (pagesWithLocalFilter.has(route.name as string)) { + const query = searchQuery.value.trim() + if (pagesWithLocalFilter.has(route.name)) { router.push({ name: 'search', - query: { - q: searchQuery.value, - }, + query: { q: query }, }) - } else { + return + } + + if (route.name === 'search') { updateUrlQuery.flush() + return + } + + if (query) { + router.push({ + name: 'search', + query: { q: query }, + }) } } diff --git a/app/pages/index.vue b/app/pages/index.vue index 64bd828cd..43f12f709 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -1,5 +1,4 @@