Spaces:
Running
Running
| import { Component, signal, computed } from '@angular/core'; | |
| import { AuthService } from './auth/auth.service'; | |
| import { AuthUiService } from './auth/auth-ui.service'; | |
| import { Router } from '@angular/router'; | |
| ({ | |
| selector: 'app-root', | |
| templateUrl: './app.html', | |
| standalone: false, | |
| styleUrls: ['./app.scss'] | |
| }) | |
| export class App { | |
| protected readonly title = signal('Pytrade'); | |
| isShowDropDown = false; | |
| // Keep signup modal local if you want | |
| signupOpen = false; | |
| constructor(public auth: AuthService, public authUi: AuthUiService, private router: Router) {} | |
| // Display name for the dropdown | |
| displayName = computed(() => { | |
| const u = this.auth.user(); | |
| return u?.displayName || u?.email || 'Account'; | |
| }); | |
| // First letter for avatar | |
| avatarInitial = computed(() => { | |
| const n = this.displayName(); | |
| return (n?.trim()?.charAt(0) || '').toUpperCase(); | |
| }); | |
| // Hover handlers | |
| showDropDown() { this.isShowDropDown = true; } | |
| hideDropDown() { this.isShowDropDown = false; } | |
| openSignup() { | |
| this.signupOpen = true; | |
| this.isShowDropDown = false; | |
| } | |
| openSignin() { | |
| this.authUi.openSignin(); | |
| this.isShowDropDown = false; | |
| } | |
| closeSignup() { this.signupOpen = false; } | |
| closeSignin() { this.authUi.closeSignin(); } | |
| handleSignup(payload: any) { | |
| console.log('Signup payload', payload); | |
| this.signupOpen = false; | |
| } | |
| handleSignin(payload: any) { | |
| console.log('Signin payload', payload); | |
| this.authUi.closeSignin(); | |
| } | |
| logout() { | |
| this.auth.logout(); | |
| this.isShowDropDown = false; | |
| this.router.navigate(['/']); | |
| } | |
| } | |