@@ -24,7 +24,7 @@ import { TranslateModule } from '@ngx-translate/core';
2424import { NavigationStart , Router } from '@angular/router' ;
2525
2626import { BehaviorSubject , combineLatest , Observable , Subscription , of } from 'rxjs' ;
27- import { debounceTime , distinctUntilChanged , filter , map , switchMap , tap } from 'rxjs/operators' ;
27+ import { distinctUntilChanged , filter , map , switchMap , tap } from 'rxjs/operators' ;
2828import uniqueId from 'lodash/uniqueId' ;
2929import {
3030 BehaviorSubject ,
@@ -553,15 +553,16 @@ export class SearchComponent implements OnDestroy, OnInit {
553553 distinctUntilChanged ( ) ,
554554 ) ;
555555 const searchOptions$ : Observable < PaginatedSearchOptions > = this . getSearchOptions ( ) . pipe ( distinctUntilChanged ( ) ) ;
556+ const queryFromQueryParam$ : Observable < string > = this . routeService . getQueryParameterValue ( 'query' ) . pipe ( distinctUntilChanged ( ) ) ;
556557
557- this . subs . push ( combineLatest ( [ configuration$ , searchSortOptions$ , searchOptions$ , sortOption$ , this . currentScope$ ] ) . pipe (
558- filter ( ( [ configuration , searchSortOptions , searchOptions , sortOption , scope ] : [ string , SortOptions [ ] , PaginatedSearchOptions , SortOptions , string ] ) => {
558+ this . subs . push ( combineLatest ( [ configuration$ , searchSortOptions$ , searchOptions$ , sortOption$ , this . currentScope$ , queryFromQueryParam$ ] ) . pipe (
559+ filter ( ( [ configuration , searchSortOptions , searchOptions , sortOption , scope , queryFromQueryParam ] : [ string , SortOptions [ ] , PaginatedSearchOptions , SortOptions , string , string ] ) => {
559560 // filter for search options related to instanced paginated id
560561 return searchOptions . pagination . id === this . paginationId ;
561562 } ) ,
562- debounceTime ( 100 ) ,
563- ) . subscribe ( ( [ configuration , searchSortOptions , searchOptions , sortOption , scope ] :
564- [ string , SortOptions [ ] , PaginatedSearchOptions , SortOptions , string ] ) => {
563+ // debounceTime(100),
564+ ) . subscribe ( ( [ configuration , searchSortOptions , searchOptions , sortOption , scope , queryFromQueryParam ] :
565+ [ string , SortOptions [ ] , PaginatedSearchOptions , SortOptions , string , string ] ) => {
565566 // Always apply the freshly resolved configuration (do NOT keep stale one)
566567 const combinedOptions = Object . assign ( { } , searchOptions , {
567568 configuration,
@@ -571,6 +572,14 @@ export class SearchComponent implements OnDestroy, OnInit {
571572 if ( combinedOptions . query === '' ) {
572573 combinedOptions . query = this . query ;
573574 }
575+ if ( this . searchOptions$ . value ) {
576+ const currentOptions = this . searchOptions$ . value ;
577+ const query = currentOptions . query ;
578+ if ( isNotEmpty ( query ) && ( isEmpty ( combinedOptions . query ) || isEmpty ( queryFromQueryParam ) ) ) {
579+ combinedOptions . query = '' ;
580+ this . query = '' ;
581+ }
582+ }
574583 if ( isEmpty ( combinedOptions . scope ) ) {
575584 combinedOptions . scope = scope ;
576585 }
0 commit comments