optimising and making it better

This commit is contained in:
sdarbinyan
2026-02-26 21:54:21 +04:00
parent 7a00a8f1e3
commit 10b4974719
58 changed files with 318 additions and 1804 deletions

View File

@@ -24,6 +24,7 @@ export class CategoryComponent implements OnInit, OnDestroy {
private readonly count = 20;
private isLoadingMore = false;
private routeSubscription?: Subscription;
private scrollTimeout?: ReturnType<typeof setTimeout>;
constructor(
private route: ActivatedRoute,
@@ -41,6 +42,7 @@ export class CategoryComponent implements OnInit, OnDestroy {
ngOnDestroy(): void {
this.routeSubscription?.unsubscribe();
if (this.scrollTimeout) clearTimeout(this.scrollTimeout);
}
resetAndLoad(): void {
@@ -80,8 +82,6 @@ export class CategoryComponent implements OnInit, OnDestroy {
});
}
private scrollTimeout: any;
@HostListener('window:scroll')
onScroll(): void {
if (this.scrollTimeout) clearTimeout(this.scrollTimeout);

View File

@@ -1,7 +1,8 @@
import { Component, OnInit, signal, ChangeDetectionStrategy } from '@angular/core';
import { Component, OnInit, OnDestroy, signal, ChangeDetectionStrategy } from '@angular/core';
import { ActivatedRoute, Router, RouterLink } from '@angular/router';
import { ApiService } from '../../services';
import { Category } from '../../models';
import { Subscription } from 'rxjs';
@Component({
selector: 'app-subcategories',
@@ -10,13 +11,15 @@ import { Category } from '../../models';
styleUrls: ['./subcategories.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class SubcategoriesComponent implements OnInit {
export class SubcategoriesComponent implements OnInit, OnDestroy {
categories = signal<Category[]>([]);
subcategories = signal<Category[]>([]);
loading = signal(true);
error = signal<string | null>(null);
parentName = signal<string>('');
private routeSubscription?: Subscription;
constructor(
private route: ActivatedRoute,
private router: Router,
@@ -24,12 +27,16 @@ export class SubcategoriesComponent implements OnInit {
) {}
ngOnInit(): void {
this.route.params.subscribe(params => {
this.routeSubscription = this.route.params.subscribe(params => {
const id = parseInt(params['id'], 10);
this.loadForParent(id);
});
}
ngOnDestroy(): void {
this.routeSubscription?.unsubscribe();
}
private loadForParent(parentID: number): void {
this.loading.set(true);
this.apiService.getCategories().subscribe({