From d94ca4accb070c9ad497c1697325ed5c65a9e0fe Mon Sep 17 00:00:00 2001 From: Tobias Kohr Date: Thu, 29 Feb 2024 09:13:28 +0100 Subject: [PATCH] review(fuzzy-search): get currentSearchFilters asynchronously when needed --- .../src/lib/fuzzy-search/fuzzy-search.component.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts b/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts index 1f55358bd..97a69fdb8 100644 --- a/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +++ b/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts @@ -11,8 +11,8 @@ import { AutocompleteComponent, AutocompleteItem, } from '@geonetwork-ui/ui/inputs' -import { Observable } from 'rxjs' -import { map, tap } from 'rxjs/operators' +import { Observable, firstValueFrom } from 'rxjs' +import { map } from 'rxjs/operators' import { SearchFacade } from '../state/search.facade' import { SearchService } from '../utils/service/search.service' import { CatalogRecord } from '@geonetwork-ui/common/domain/model/record' @@ -31,7 +31,6 @@ export class FuzzySearchComponent implements OnInit { @Output() itemSelected = new EventEmitter() @Output() inputSubmitted = new EventEmitter() searchInputValue$: Observable<{ title: string }> - currentSearchFilters: SearchFilters displayWithFn: (record: CatalogRecord) => string = (record) => record?.title @@ -48,7 +47,6 @@ export class FuzzySearchComponent implements OnInit { ngOnInit(): void { this.searchInputValue$ = this.searchFacade.searchFilters$.pipe( - tap((searchFilter) => (this.currentSearchFilters = searchFilter)), map((searchFilter) => ({ title: searchFilter.any as string, })) @@ -78,8 +76,11 @@ export class FuzzySearchComponent implements OnInit { } } - handleInputCleared() { - if (this.currentSearchFilters.any) { + async handleInputCleared() { + const currentSearchFilters: SearchFilters = await firstValueFrom( + this.searchFacade.searchFilters$ + ) + if (currentSearchFilters.any) { this.searchService.updateFilters({ any: '' }) } }