40 lines
1.3 KiB
TypeScript
40 lines
1.3 KiB
TypeScript
import { Component, OnInit, inject } from '@angular/core';
|
|
import { CommonModule } from '@angular/common';
|
|
// WICHTIG: RouterLink und RouterLinkActive importieren
|
|
import { RouterLink, RouterLinkActive, Router } from '@angular/router';
|
|
import { IconComponent } from '../../ui/icon/icon.component';
|
|
import { StorageService } from '../../../../core/services/storage.service';
|
|
|
|
@Component({
|
|
selector: 'app-sidebar',
|
|
standalone: true,
|
|
// WICHTIG: Hier im Array hinzufügen
|
|
imports: [CommonModule, IconComponent, RouterLink, RouterLinkActive],
|
|
templateUrl: './sidebar.component.html',
|
|
styleUrl: './sidebar.component.css',
|
|
})
|
|
export class SidebarComponent implements OnInit {
|
|
private storageService = inject(StorageService);
|
|
private readonly sidebarCollapsedKey = 'app-sidebar-collapsed';
|
|
|
|
public isCollapsed = false;
|
|
|
|
constructor(private router: Router) {}
|
|
|
|
ngOnInit(): void {
|
|
this.loadCollapsedState();
|
|
}
|
|
|
|
toggleSidebar(): void {
|
|
this.isCollapsed = !this.isCollapsed;
|
|
this.saveCollapsedState();
|
|
}
|
|
|
|
private loadCollapsedState(): void {
|
|
this.isCollapsed = this.storageService.getItem<boolean>(this.sidebarCollapsedKey) ?? false;
|
|
}
|
|
|
|
private saveCollapsedState(): void {
|
|
this.storageService.setItem(this.sidebarCollapsedKey, this.isCollapsed);
|
|
}
|
|
} |