remove search service from popup filters
This commit is contained in:
parent
eddaed2b56
commit
b9bc9bac42
@ -4,8 +4,6 @@ import { delay, map } from 'rxjs/operators';
|
||||
import { any, shareDistinctLast, shareLast } from '../../utils';
|
||||
import { FilterService } from '../filter.service';
|
||||
import { IFilterGroup } from '../models/filter-group.model';
|
||||
import { SearchService } from '../../search';
|
||||
import { Filter, IFilter } from '..';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
|
||||
@Component({
|
||||
@ -13,7 +11,6 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
templateUrl: './popup-filter.component.html',
|
||||
styleUrls: ['./popup-filter.component.scss'],
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
providers: [SearchService],
|
||||
})
|
||||
export class PopupFilterComponent implements OnInit {
|
||||
@Input() primaryFiltersSlug!: string;
|
||||
@ -28,10 +25,9 @@ export class PopupFilterComponent implements OnInit {
|
||||
|
||||
primaryFilterGroup$!: Observable<IFilterGroup | undefined>;
|
||||
secondaryFilterGroup$!: Observable<IFilterGroup | undefined>;
|
||||
primaryFilters$!: Observable<IFilter[] | undefined>;
|
||||
primaryFiltersDisabled$!: Observable<boolean>;
|
||||
|
||||
constructor(readonly filterService: FilterService, readonly searchService: SearchService<Filter>) {}
|
||||
constructor(readonly filterService: FilterService) {}
|
||||
|
||||
private get _hasActiveFilters$() {
|
||||
return combineLatest([this.primaryFilterGroup$, this.secondaryFilterGroup$]).pipe(
|
||||
@ -41,24 +37,15 @@ export class PopupFilterComponent implements OnInit {
|
||||
);
|
||||
}
|
||||
|
||||
private get _primaryFilters$(): Observable<IFilter[]> {
|
||||
return combineLatest([this.primaryFilterGroup$, this.searchService.valueChanges$]).pipe(
|
||||
map(([group]) => this.searchService.searchIn(group?.filters ?? [])),
|
||||
shareLast(),
|
||||
);
|
||||
}
|
||||
|
||||
private get _primaryFiltersDisabled$(): Observable<boolean> {
|
||||
return combineLatest([this.primaryFilterGroup$, this.primaryFilters$, this.searchService.valueChanges$]).pipe(
|
||||
map(([group, filters, value]) => [!!group?.filterceptionPlaceholder, filters?.length === 0, value === '']),
|
||||
map(([hasFilterSearch, noFilters, searchIsEmpty]) => noFilters && (!hasFilterSearch || (hasFilterSearch && searchIsEmpty))),
|
||||
return this.primaryFilterGroup$.pipe(
|
||||
map(group => group?.filters?.length === 0),
|
||||
shareDistinctLast(),
|
||||
);
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.primaryFilterGroup$ = this.filterService.getGroup$(this.primaryFiltersSlug).pipe(shareLast());
|
||||
this.primaryFilters$ = this._primaryFilters$;
|
||||
this.secondaryFilterGroup$ = this.filterService.getGroup$(this.secondaryFiltersSlug).pipe(shareLast());
|
||||
|
||||
this.hasActiveFilters$ = this._hasActiveFilters$;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user