import { Component, signal } from '@angular/core'; import { Router, RouterOutlet } from '@angular/router'; import { MainMenu } from './components/main-menu/main-menu'; import { AuthService } from './auth/auth.service'; import { AdminLayout } from './layout/admin-layout/admin-layout'; import { finalize } from 'rxjs/operators'; @Component({ selector: 'app-root', imports: [RouterOutlet, AdminLayout,MainMenu], templateUrl: './app.html', styleUrl: './app.css' }) export class App { protected readonly title = signal('admin'); constructor(private authService: AuthService, private router: Router) {} logout(): void { // With the interceptor fixed, this is now the correct and robust way. // The error from a failed server logout will propagate here. this.authService.serverSideLogout().subscribe({ next: () => { console.log('Server-side logout successful.'); this.authService.clientSideLogout(); }, error: (err) => { console.error('Server-side logout failed, logging out client-side anyway.', err); this.authService.clientSideLogout(); }, }); } }