remove search service from popup filters

This commit is contained in:
Dan Percic 2022-07-28 20:35:22 +03:00
parent eddaed2b56
commit b9bc9bac42

View File

@ -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$;