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

@@ -4,7 +4,6 @@
<app-icon [iconName]="'placeholder'" [svgColor]="'#8e44ad'"></app-icon> <app-icon [iconName]="'placeholder'" [svgColor]="'#8e44ad'"></app-icon>
<span>Toggle</span> <span>Toggle</span>
</div> </div>
<div <div
@@ -15,8 +14,28 @@
<app-icon [iconName]="'placeholder'" [svgColor]="'#8e44ad'"></app-icon> <app-icon [iconName]="'placeholder'" [svgColor]="'#8e44ad'"></app-icon>
<span>Home</span> <span>Home</span>
</div> </div>
<div
class="nav-item"
[class.active]="activeRoute === 'categories'"
(click)="setActive('categories')"
>
<app-icon [iconName]="'placeholder'" [svgColor]="'#8e44ad'"></app-icon>
<span>categories</span>
</div>
<div
class="nav-item"
[class.active]="activeRoute === 'discounts'"
(click)="setActive('discounts')"
>
<app-icon [iconName]="'placeholder'" [svgColor]="'#8e44ad'"></app-icon>
<span>discounts</span>
</div>
<div <div
class="nav-item" class="nav-item"
[class.active]="activeRoute === 'uebersicht'" [class.active]="activeRoute === 'uebersicht'"
@@ -25,7 +44,6 @@
<app-icon [iconName]="'placeholder'" [svgColor]="'#8e44ad'"></app-icon> <app-icon [iconName]="'placeholder'" [svgColor]="'#8e44ad'"></app-icon>
<span>Übersicht</span> <span>Übersicht</span>
</div> </div>
</nav> </nav>
</aside> </aside>

View File

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