diff --git a/frontend/src/app/components/side-menu/categories-menu/categories-menu.component.html b/frontend/src/app/components/side-menu/categories-menu/categories-menu.component.html index 8506529..564bd98 100644 --- a/frontend/src/app/components/side-menu/categories-menu/categories-menu.component.html +++ b/frontend/src/app/components/side-menu/categories-menu/categories-menu.component.html @@ -1,5 +1,5 @@ -@for(category of categories$ | async; track category) { -
+@for(category of categories(); track category) { +
{{category.name}} chevron_right diff --git a/frontend/src/app/components/side-menu/categories-menu/categories-menu.component.ts b/frontend/src/app/components/side-menu/categories-menu/categories-menu.component.ts index f498224..2c4a606 100644 --- a/frontend/src/app/components/side-menu/categories-menu/categories-menu.component.ts +++ b/frontend/src/app/components/side-menu/categories-menu/categories-menu.component.ts @@ -1,9 +1,10 @@ import { CommonModule } from "@angular/common"; -import { Component, EventEmitter, inject, OnInit, Output } from "@angular/core"; +import { Component, EventEmitter, inject, OnDestroy, OnInit, Output, signal } from "@angular/core"; import { MatIconModule } from "@angular/material/icon"; import { DisplayableCategory, SideMenuService } from "../side-menu.service"; -import { Observable } from "rxjs"; +import { Observable, Subscription } from "rxjs"; import { RouterModule } from "@angular/router"; +import { Category } from "../../../core/rest-services/category/model/category"; @Component({ selector: 'app-categories-menu', @@ -12,17 +13,21 @@ import { RouterModule } from "@angular/router"; templateUrl: './categories-menu.component.html', styleUrl: './categories-menu.component.scss' }) -export class CategoriesMenuComponent implements OnInit { - private sideMenuService = inject(SideMenuService); +export class CategoriesMenuComponent implements OnInit, OnDestroy { @Output() categoryClicked = new EventEmitter(); + private sideMenuService = inject(SideMenuService); + private categoriesSubscription?: Subscription; + categories = signal([]); ngOnInit(): void { + this.categoriesSubscription = this.sideMenuService.categories$ + .subscribe(categories => this.categories.set(categories)); this.sideMenuService.loadCategories(); } - get categories$(): Observable { - return this.sideMenuService.categories$; + ngOnDestroy(): void { + this.categoriesSubscription?.unsubscribe(); } setOpenned(category: DisplayableCategory): void { diff --git a/frontend/src/app/components/side-menu/side-menu.component.html b/frontend/src/app/components/side-menu/side-menu.component.html index 3be46fe..d5eb4a4 100644 --- a/frontend/src/app/components/side-menu/side-menu.component.html +++ b/frontend/src/app/components/side-menu/side-menu.component.html @@ -1,4 +1,4 @@ -