showInDirectory, loggingInterceptor, conditional Views props & profs

This commit is contained in:
2025-03-03 19:53:43 +01:00
parent d8c48bf58a
commit e37613ffa0
11 changed files with 52 additions and 20 deletions

View File

@@ -111,6 +111,7 @@
>Businesses</a
>
</li>
@if ((numberOfCommercial$ | async) > 0) {
<li>
<a
routerLink="/commercialPropertyListings"
@@ -120,6 +121,8 @@
>Properties</a
>
</li>
}
@if ((numberOfBroker$ | async) > 0) {
<li>
<a
routerLink="/brokerListings"
@@ -129,6 +132,7 @@
>Professionals</a
>
</li>
}
</ul>
</div>
} @else {
@@ -151,6 +155,7 @@
>Businesses</a
>
</li>
@if ((numberOfCommercial$ | async) > 0) {
<li>
<a
routerLink="/commercialPropertyListings"
@@ -160,6 +165,8 @@
>Properties</a
>
</li>
}
@if ((numberOfBroker$ | async) > 0) {
<li>
<a
routerLink="/brokerListings"
@@ -169,6 +176,7 @@
>Professionals</a
>
</li>
}
</ul>
</div>
}
@@ -200,6 +208,7 @@
>Businesses</a
>
</li>
@if ((numberOfCommercial$ | async) > 0) {
<li>
<a
routerLinkActive="active-link"
@@ -210,6 +219,8 @@
>Properties</a
>
</li>
}
@if ((numberOfBroker$ | async) > 0) {
<li>
<a
routerLinkActive="active-link"
@@ -220,6 +231,7 @@
>Professionals</a
>
</li>
}
</ul>
</div>
</div>

View File

@@ -12,6 +12,7 @@ import { BusinessListingCriteria, CommercialPropertyListingCriteria, emailToDirN
import { environment } from '../../../environments/environment';
import { AuthService } from '../../services/auth.service';
import { CriteriaChangeService } from '../../services/criteria-change.service';
import { ListingsService } from '../../services/listings.service';
import { SearchService } from '../../services/search.service';
import { SelectOptionsService } from '../../services/select-options.service';
import { SharedService } from '../../services/shared.service';
@@ -46,6 +47,8 @@ export class HeaderComponent {
baseRoute: string;
sortDropdownVisible: boolean;
sortByOptions: KeyValueAsSortBy[] = [];
numberOfBroker$: Observable<number>;
numberOfCommercial$: Observable<number>;
constructor(
private router: Router,
private userService: UserService,
@@ -56,6 +59,7 @@ export class HeaderComponent {
private criteriaChangeService: CriteriaChangeService,
public selectOptions: SelectOptionsService,
private authService: AuthService,
private listingService: ListingsService,
) {}
@HostListener('document:click', ['$event'])
handleGlobalClick(event: Event) {
@@ -71,7 +75,8 @@ export class HeaderComponent {
this.user = await this.userService.getByMail(this.keycloakUser?.email);
this.profileUrl = this.user.hasProfile ? `${this.env.imageBaseUrl}/pictures/profile/${emailToDirName(this.user.email)}.avif?_ts=${new Date().getTime()}` : `/assets/images/placeholder.png`;
}
this.numberOfBroker$ = this.userService.getNumberOfBroker(createEmptyUserListingCriteria());
this.numberOfCommercial$ = this.listingService.getNumberOfListings(createEmptyCommercialPropertyListingCriteria(), 'commercialProperty');
setTimeout(() => {
initFlowbite();
}, 10);