import { ChangeDetectionStrategy, Component, inject, OnInit, OnDestroy, signal, } from '@angular/core'; import { RouterModule } from '@angular/router'; import { AuthService } from '../../../service/auth.service'; import { CurrencyPipe } from '@angular/common'; import { UserService } from '@service/user.service'; import { Subscription } from 'rxjs'; import { AnimatedNumberComponent } from '@blackjack/components/animated-number/animated-number.component'; @Component({ selector: 'app-navbar', templateUrl: './navbar.component.html', standalone: true, imports: [RouterModule, CurrencyPipe, AnimatedNumberComponent], changeDetection: ChangeDetectionStrategy.OnPush, }) export class NavbarComponent implements OnInit, OnDestroy { isMenuOpen = false; private authService: AuthService = inject(AuthService); isLoggedIn = this.authService.isLoggedIn(); private userService = inject(UserService); private userSubscription: Subscription | undefined; public balance = signal(0); ngOnInit() { this.userSubscription = this.userService.currentUser$.subscribe((user) => { this.balance.set(user?.balance ?? 0); }); } ngOnDestroy() { if (this.userSubscription) { this.userSubscription.unsubscribe(); } } login() { try { this.authService.login(); } catch (error) { console.error('Login failed:', error); } } logout() { this.authService.logout(); } toggleMenu() { this.isMenuOpen = !this.isMenuOpen; } }