dvbooking/admin/src/app/app.ts
2025-11-14 17:20:13 +01:00

34 lines
1.1 KiB
TypeScript

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();
},
});
}
}