diff --git a/src/app/models/category.model.ts b/src/app/models/category.model.ts index 230096f..7f14975 100644 --- a/src/app/models/category.model.ts +++ b/src/app/models/category.model.ts @@ -4,4 +4,5 @@ export interface Category { parentID: number; icon?: string; wideBanner?: string; + itemCount?: number; } diff --git a/src/app/pages/home/home.component.ts b/src/app/pages/home/home.component.ts index 5042ce6..d16165b 100644 --- a/src/app/pages/home/home.component.ts +++ b/src/app/pages/home/home.component.ts @@ -1,7 +1,6 @@ import { Component, OnInit, signal, computed, ChangeDetectionStrategy } from '@angular/core'; import { CommonModule } from '@angular/common'; import { Router, RouterLink } from '@angular/router'; -import { forkJoin } from 'rxjs'; import { ApiService } from '../../services'; import { Category } from '../../models'; import { environment } from '../../../environments/environment'; @@ -19,7 +18,6 @@ export class HomeComponent implements OnInit { brandName = environment.brandFullName; isnovo = environment.theme === 'novo'; categories = signal([]); - itemCounts = signal>(new Map()); wideCategories = signal>(new Set()); loading = signal(true); error = signal(null); @@ -55,7 +53,6 @@ export class HomeComponent implements OnInit { next: (categories) => { this.categories.set(categories); this.loading.set(false); - this.loadItemCounts(); this.detectWideImages(categories); }, error: (err) => { @@ -66,29 +63,9 @@ export class HomeComponent implements OnInit { }); } - private loadItemCounts(): void { - const topLevel = this.topLevelCategories(); - if (topLevel.length === 0) return; - - const requests: Record> = {}; - topLevel.forEach(cat => { - requests[cat.categoryID.toString()] = this.apiService.getCategoryItems(cat.categoryID, 1000); - }); - - forkJoin(requests).subscribe({ - next: (results) => { - const counts = new Map(); - Object.entries(results).forEach(([id, items]) => { - counts.set(Number(id), items.length); - }); - this.itemCounts.set(counts); - }, - error: (err) => console.error('Error loading item counts:', err) - }); - } - getItemCount(categoryID: number): number { - return this.itemCounts().get(categoryID) || 0; + const cat = this.categories().find(c => c.categoryID === categoryID); + return cat?.itemCount || 0; } getTopLevelCategories(): Category[] {