import {ChangeDetectionStrategy, Component, inject, OnDestroy, OnInit, signal,} from '@angular/core'; import {RouterModule} from '@angular/router'; import {AuthService} from '../../../service/auth.service'; 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, 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; } }