File tree Expand file tree Collapse file tree 4 files changed +20
-20
lines changed
Expand file tree Collapse file tree 4 files changed +20
-20
lines changed Original file line number Diff line number Diff line change @@ -28,8 +28,7 @@ const showSearchBar = computed(() => {
2828 return route .name !== ' index'
2929})
3030
31- // Local input value (updates immediately as user types)
32- const searchQuery = shallowRef (normalizeSearchParam (route .query .q ))
31+ const searchQuery = useGlobalSearchQuery ()
3332
3433// Pages that have their own local filter using ?q
3534const pagesWithLocalFilter = new Set ([' ~username' , ' org' ])
@@ -75,21 +74,6 @@ watch(searchQuery, value => {
7574 updateUrlQuery (value )
7675})
7776
78- // Sync input with URL when navigating (e.g., back button)
79- watch (
80- () => route .query .q ,
81- urlQuery => {
82- // Don't sync from pages that use ?q for local filtering
83- if (pagesWithLocalFilter .has (route .name as string )) {
84- return
85- }
86- const value = normalizeSearchParam (urlQuery )
87- if (searchQuery .value !== value ) {
88- searchQuery .value = value
89- }
90- },
91- )
92-
9377function handleSubmit() {
9478 if (pagesWithLocalFilter .has (route .name as string )) {
9579 router .push ({
Original file line number Diff line number Diff line change 1+ import { normalizeSearchParam } from '#shared/utils/url'
2+
3+ export function useGlobalSearchQuery ( ) {
4+ const route = useRoute ( )
5+ const searchQuery = useState < string > ( 'search-query' , ( ) => normalizeSearchParam ( route . query . q ) )
6+
7+ // clean search input when navigating away from search page
8+ watch (
9+ ( ) => route . query . q ,
10+ urlQuery => {
11+ const value = normalizeSearchParam ( urlQuery )
12+ if ( ! value ) searchQuery . value = ''
13+ } ,
14+ )
15+ return searchQuery
16+ }
Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ import { SHOWCASED_FRAMEWORKS } from '~/utils/frameworks'
44
55const { searchProvider } = useSearchProvider ()
66
7- const searchQuery = shallowRef ( ' ' )
7+ const searchQuery = useGlobalSearchQuery ( )
88const isSearchFocused = shallowRef (false )
99
1010async function search() {
Original file line number Diff line number Diff line change @@ -38,8 +38,8 @@ const updateUrlPage = debounce((page: number) => {
3838 })
3939}, 500 )
4040
41- // The actual search query (from URL, used for API calls )
42- const query = computed (() => normalizeSearchParam ( route . query . q ) )
41+ const searchQuery = useGlobalSearchQuery ( )
42+ const query = computed (() => searchQuery . value )
4343
4444// Track if page just loaded (for hiding "Searching..." during view transition)
4545const hasInteracted = shallowRef (false )
You can’t perform that action at this time.
0 commit comments