@@ -87,6 +87,7 @@ export function hasSearchOperators(parsed: ParsedSearchOperators): boolean {
8787
8888interface UseStructuredFiltersOptions {
8989 packages : Ref < NpmSearchResult [ ] >
90+ searchQueryModel ?: Ref < string >
9091 initialFilters ?: Partial < StructuredFilters >
9192 initialSort ?: SortOption
9293}
@@ -114,7 +115,7 @@ function matchesSecurity(pkg: NpmSearchResult, security: SecurityFilter): boolea
114115export function useStructuredFilters ( options : UseStructuredFiltersOptions ) {
115116 const route = useRoute ( )
116117 const router = useRouter ( )
117- const { packages, initialFilters, initialSort } = options
118+ const { packages, initialFilters, initialSort, searchQueryModel } = options
118119 const { t } = useI18n ( )
119120
120121 const searchQuery = shallowRef ( normalizeSearchParam ( route . query . q ) )
@@ -404,13 +405,16 @@ export function useStructuredFilters(options: UseStructuredFiltersOptions) {
404405 ? `${ searchQuery . value . trim ( ) } keyword:${ keyword } `
405406 : `keyword:${ keyword } `
406407 router . replace ( { query : { ...route . query , q : newQ } } )
408+
409+ if ( searchQueryModel ) searchQueryModel . value = newQ
407410 }
408411 }
409412
410413 function removeKeyword ( keyword : string ) {
411414 filters . value . keywords = filters . value . keywords . filter ( k => k !== keyword )
412415 const newQ = searchQuery . value . replace ( new RegExp ( `keyword:${ keyword } ($| )` , 'g' ) , '' ) . trim ( )
413416 router . replace ( { query : { ...route . query , q : newQ || undefined } } )
417+ if ( searchQueryModel ) searchQueryModel . value = newQ
414418 }
415419
416420 function toggleKeyword ( keyword : string ) {
0 commit comments