This commit is contained in:
Tizian.Breuch
2025-10-09 12:19:15 +02:00
parent 0d8d9b5987
commit 6754a037b5
2 changed files with 43 additions and 15 deletions

View File

@@ -1,18 +1,20 @@
import { Component, Inject, PLATFORM_ID, OnInit } from '@angular/core';
import { CommonModule, isPlatformBrowser } from '@angular/common';
import { IconComponent } from '../../ui/icon/icon.component';
import { Router } from '@angular/router';
@Component({
selector: 'app-sidebar',
standalone: true,
imports: [CommonModule, IconComponent],
templateUrl: './sidebar.component.html',
styleUrl: './sidebar.component.css'
styleUrl: './sidebar.component.css',
})
export class SidebarComponent implements OnInit { // 1. OnInit implementieren
export class SidebarComponent implements OnInit {
// 1. OnInit implementieren
// Key für localStorage, genau wie beim Dark Mode
private readonly sidebarCollapsedKey = 'app-sidebar-collapsed-setting';
// Dummy-Eigenschaft für die aktive Route
activeRoute = 'dashboard';
@@ -20,7 +22,10 @@ export class SidebarComponent implements OnInit { // 1. OnInit implementieren
public isCollapsed = false;
// 2. PLATFORM_ID injizieren, um localStorage sicher zu verwenden
constructor(@Inject(PLATFORM_ID) private platformId: Object) {}
constructor(
@Inject(PLATFORM_ID) private platformId: Object,
private router: Router
) {}
// 3. Beim Start der Komponente den gespeicherten Zustand laden
ngOnInit(): void {
@@ -30,6 +35,8 @@ export class SidebarComponent implements OnInit { // 1. OnInit implementieren
// Dummy-Methode
setActive(route: string): void {
this.activeRoute = route;
this.router.navigateByUrl('/shop/' + route);
}
// 4. Die Umschalt-Methode aktualisieren, damit sie den neuen Zustand speichert
@@ -57,10 +64,13 @@ export class SidebarComponent implements OnInit { // 1. OnInit implementieren
private saveCollapsedState(): void {
if (isPlatformBrowser(this.platformId)) {
try {
localStorage.setItem(this.sidebarCollapsedKey, String(this.isCollapsed));
localStorage.setItem(
this.sidebarCollapsedKey,
String(this.isCollapsed)
);
} catch (e) {
console.error('Could not write to localStorage for sidebar state:', e);
}
}
}
}
}