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; } }