46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import { ChangeDetectionStrategy, Component, inject, OnInit, signal } from '@angular/core';
|
|
import { RouterModule } from '@angular/router';
|
|
import { KeycloakService } from 'keycloak-angular';
|
|
|
|
import { CurrencyPipe } from '@angular/common';
|
|
import { UserService } from '@service/user.service';
|
|
@Component({
|
|
selector: 'app-navbar',
|
|
templateUrl: './navbar.component.html',
|
|
standalone: true,
|
|
imports: [RouterModule, CurrencyPipe],
|
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
})
|
|
export class NavbarComponent implements OnInit {
|
|
isMenuOpen = false;
|
|
private keycloakService: KeycloakService = inject(KeycloakService);
|
|
isLoggedIn = this.keycloakService.isLoggedIn();
|
|
|
|
private userService = inject(UserService);
|
|
private user = this.userService.getCurrentUser();
|
|
|
|
public balance = signal(0);
|
|
|
|
ngOnInit() {
|
|
this.user.subscribe((user) => {
|
|
this.balance.set(user?.balance ?? 0);
|
|
});
|
|
}
|
|
|
|
login() {
|
|
try {
|
|
const baseUrl = window.location.origin;
|
|
this.keycloakService.login({ redirectUri: `${baseUrl}/login/success` });
|
|
} catch (error) {
|
|
console.error('Login failed:', error);
|
|
}
|
|
}
|
|
|
|
logout() {
|
|
this.keycloakService.logout();
|
|
}
|
|
|
|
toggleMenu() {
|
|
this.isMenuOpen = !this.isMenuOpen;
|
|
}
|
|
}
|