51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
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<KeycloakUser>;
|
|
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;
|
|
}
|
|
}
|