This commit is contained in:
@@ -1,17 +1,30 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Subject } from 'rxjs';
|
||||
import { SortByOptions } from '../../../../bizmatch-server/src/models/db.model';
|
||||
import { BusinessListingCriteria, CommercialPropertyListingCriteria, UserListingCriteria } from '../../../../bizmatch-server/src/models/main.model';
|
||||
import { getCriteriaProxy } from '../utils/utils';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class SearchService {
|
||||
private criteriaSource = new Subject<BusinessListingCriteria | CommercialPropertyListingCriteria | UserListingCriteria>();
|
||||
private criteriaSource = new Subject<{
|
||||
criteria: BusinessListingCriteria | CommercialPropertyListingCriteria | UserListingCriteria;
|
||||
sortBy?: SortByOptions;
|
||||
}>();
|
||||
currentCriteria = this.criteriaSource.asObservable();
|
||||
|
||||
constructor() {}
|
||||
|
||||
search(criteria: BusinessListingCriteria | CommercialPropertyListingCriteria | UserListingCriteria): void {
|
||||
this.criteriaSource.next(criteria);
|
||||
search(criteriaType: 'businessListings' | 'commercialPropertyListings' | 'brokerListings'): void {
|
||||
const criteria = getCriteriaProxy(criteriaType, this);
|
||||
const storedSortBy =
|
||||
criteriaType === 'businessListings'
|
||||
? sessionStorage.getItem('businessSortBy')
|
||||
: criteriaType === 'commercialPropertyListings'
|
||||
? sessionStorage.getItem('commercialSortBy')
|
||||
: sessionStorage.getItem('professionalsSortBy');
|
||||
const sortBy = storedSortBy && storedSortBy !== 'null' ? (storedSortBy as SortByOptions) : null;
|
||||
this.criteriaSource.next({ criteria, sortBy });
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user