import { Component, inject, signal } from '@angular/core'; import { Router, RouterOutlet } from '@angular/router'; import { AuthService } from './auth/auth.service'; import { AdminLayoutRs1 } from '../../projects/rschneider/ng-daisyui/src/lib/layout'; import { Menu, MenuItem } from './components/menu/menu'; @Component({ selector: 'app-root', imports: [RouterOutlet, AdminLayoutRs1, Menu], templateUrl: './app.html', styleUrl: './app.css', }) export class App { protected readonly title = signal('admin'); protected menuConfig: MenuItem[] = [ ]; protected currentUserRoles: string[] = ['admin']; protected menuTitle: string | undefined = 'Menü'; constructor(private authService: AuthService, private router: Router) { this.menuConfig = [ { menuText: 'Esemény típusok', targetUrl: '/event-type/table', svgIcon: ` ` }, { menuText: 'Események', targetUrl: '/events/table', svgIcon: ` ` } ] } 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(); }, }); } loggedIn(){ return this.authService.isLoggedIn() } }