Skip to content

Commit 065eefe

Browse files
Andrea BarbassoMattia Vianelli
authored andcommitted
[DSC-2624] fix issue with search query being applied even when it has been cleared
(cherry picked from commit 1875c61c3c878f379aead7c399fca3ad1fe01370)
1 parent 7403355 commit 065eefe

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

src/app/shared/search/search.component.ts

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import { TranslateModule } from '@ngx-translate/core';
2424
import { NavigationStart, Router } from '@angular/router';
2525

2626
import { 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';
2828
import uniqueId from 'lodash/uniqueId';
2929
import {
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

Comments
 (0)