mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-31 09:37:15 +01:00
Fix Filters Empty on First Open
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { Injectable, OnDestroy } from '@angular/core';
|
||||
import { Observable, BehaviorSubject, Subject, combineLatest } from 'rxjs';
|
||||
import { SelectFilter, Filter, SelectFilterOption } from '../../filter';
|
||||
import { tap, startWith, map, filter, takeUntil } from 'rxjs/operators';
|
||||
import { startWith, map, filter, takeUntil, take } from 'rxjs/operators';
|
||||
import { SearchStateFacade } from '../../../store/customer';
|
||||
import { flatten } from '../../../shared/utils';
|
||||
import { isNullOrUndefined } from 'util';
|
||||
@@ -61,12 +61,7 @@ export class ShelfFilterService implements OnDestroy {
|
||||
get pendingFiltersShouldUpdate$() {
|
||||
return combineLatest([
|
||||
this.filters$.pipe(filter((filters) => !isNullOrUndefined(filters))),
|
||||
this.resetFilters$.pipe(
|
||||
startWith(),
|
||||
tap(() => {
|
||||
this.pendingFilters = null;
|
||||
})
|
||||
),
|
||||
this.resetFilters$.pipe(startWith()),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -81,12 +76,14 @@ export class ShelfFilterService implements OnDestroy {
|
||||
}
|
||||
|
||||
initPendingFilters() {
|
||||
this.setInitialPendingFilters();
|
||||
|
||||
this.pendingFiltersShouldUpdate$
|
||||
.pipe(takeUntil(this.destroy$))
|
||||
.subscribe(([filters]) => {
|
||||
this.pendingFilters = filters.map(cloneFilter);
|
||||
this.setInitialFilterGroupLastChanged(filters);
|
||||
});
|
||||
.pipe(
|
||||
takeUntil(this.destroy$),
|
||||
map(([filters]) => filters)
|
||||
)
|
||||
.subscribe(this.updatePendingFilters);
|
||||
}
|
||||
|
||||
updateFilters(updatedFilters: SelectFilter[]) {
|
||||
@@ -106,6 +103,21 @@ export class ShelfFilterService implements OnDestroy {
|
||||
this.overlayClosed$.next();
|
||||
}
|
||||
|
||||
private setInitialPendingFilters() {
|
||||
this.filters$
|
||||
.pipe(
|
||||
filter((filters) => !isNullOrUndefined(filters)),
|
||||
take(1),
|
||||
takeUntil(this.destroy$)
|
||||
)
|
||||
.subscribe(this.updatePendingFilters);
|
||||
}
|
||||
|
||||
private updatePendingFilters = (filters: SelectFilter[]) => {
|
||||
this.pendingFilters = filters.map(cloneFilter);
|
||||
this.setInitialFilterGroupLastChanged(filters);
|
||||
};
|
||||
|
||||
private setInitialFilterGroupLastChanged(filters: SelectFilter[]) {
|
||||
if (!this.lastFilterGroupChanged$.value) {
|
||||
this.lastFilterGroupChanged$.next(filters[0]);
|
||||
|
||||
Reference in New Issue
Block a user