Files
SimpleCloudNotifier/webapp/src/app/layout/main-layout/main-layout.component.ts
T
Mikescher 2b7950f5dc
Build Docker and Deploy / Build Docker Container (push) Successful in 1m41s
Build Docker and Deploy / Run Unit-Tests (push) Successful in 9m31s
Build Docker and Deploy / Deploy to Server (push) Successful in 18s
More webapp changes+fixes
2025-12-05 21:39:32 +01:00

67 lines
1.9 KiB
TypeScript

import { Component, inject, signal, OnInit } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterOutlet, RouterLink, Router } from '@angular/router';
import { NzLayoutModule } from 'ng-zorro-antd/layout';
import { NzMenuModule } from 'ng-zorro-antd/menu';
import { NzIconModule } from 'ng-zorro-antd/icon';
import { NzButtonModule } from 'ng-zorro-antd/button';
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
import { NzSwitchModule } from 'ng-zorro-antd/switch';
import { FormsModule } from '@angular/forms';
import { AuthService } from '../../core/services/auth.service';
import { SettingsService } from '../../core/services/settings.service';
import { ApiService } from '../../core/services/api.service';
import { KeyToken } from '../../core/models';
@Component({
selector: 'app-main-layout',
standalone: true,
imports: [
CommonModule,
FormsModule,
RouterOutlet,
RouterLink,
NzLayoutModule,
NzMenuModule,
NzIconModule,
NzButtonModule,
NzDropDownModule,
NzSwitchModule,
],
templateUrl: './main-layout.component.html',
styleUrl: './main-layout.component.scss'
})
export class MainLayoutComponent implements OnInit {
private authService = inject(AuthService);
private apiService = inject(ApiService);
private router = inject(Router);
settingsService = inject(SettingsService);
isCollapsed = signal(false);
userId = this.authService.getUserId();
currentKey = signal<KeyToken | null>(null);
expertMode = this.settingsService.expertMode;
ngOnInit(): void {
this.loadCurrentKey();
}
private loadCurrentKey(): void {
const userId = this.userId;
if (!userId) return;
this.apiService.getCurrentKey(userId).subscribe({
next: (key) => this.currentKey.set(key)
});
}
toggleCollapsed(): void {
this.isCollapsed.update(v => !v);
}
logout(): void {
this.authService.logout();
this.router.navigate(['/login']);
}
}