import { CommonModule } from '@angular/common'; import { Component } from '@angular/core'; import { Router, RouterModule } from '@angular/router'; import { faUserGear } from '@fortawesome/free-solid-svg-icons'; import { initFlowbite } from 'flowbite'; import { KeycloakService } from 'keycloak-angular'; import { Observable } from 'rxjs'; import { KeycloakUser } from '../../../../../bizmatch-server/src/models/main.model'; import { environment } from '../../../environments/environment'; import { map2User } from '../../utils/utils'; @Component({ selector: 'header', standalone: true, imports: [CommonModule, RouterModule], templateUrl: './header.component.html', styleUrl: './header.component.scss', }) export class HeaderComponent { public buildVersion = environment.buildVersion; user$: Observable; user: KeycloakUser; activeItem; faUserGear = faUserGear; constructor(public keycloakService: KeycloakService, private router: Router) {} async ngOnInit() { const token = await this.keycloakService.getToken(); this.user = map2User(token); setTimeout(() => { initFlowbite(); }); } ngAfterViewInit() {} navigateWithState(dest: string, state: any) { this.router.navigate([dest], { state: state }); } login() { this.keycloakService.login({ redirectUri: window.location.href, }); } register() { this.keycloakService.register({ redirectUri: `${window.location.origin}/account` }); } isActive(route: string): boolean { return this.router.url === route; } }