improvments are done

This commit is contained in:
sdarbinyan
2026-02-19 01:23:25 +04:00
parent e3efb270dd
commit 18df968b7a
42 changed files with 281 additions and 744 deletions

View File

@@ -1,16 +1,16 @@
import { Component, signal, HostListener, OnDestroy, ChangeDetectionStrategy } from '@angular/core';
import { CommonModule } from '@angular/common';
import { DecimalPipe } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { RouterLink } from '@angular/router';
import { ApiService, CartService } from '../../services';
import { Item } from '../../models';
import { Subject, Subscription } from 'rxjs';
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
import { getDiscountedPrice, getMainImage, trackByItemId } from '../../utils/item.utils';
@Component({
selector: 'app-search',
standalone: true,
imports: [CommonModule, FormsModule, RouterLink],
imports: [DecimalPipe, FormsModule, RouterLink],
templateUrl: './search.component.html',
styleUrls: ['./search.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush
@@ -39,7 +39,9 @@ export class SearchComponent implements OnDestroy {
distinctUntilChanged()
)
.subscribe(query => {
this.performSearch(query);
if (query.trim().length >= 3 || query.trim().length === 0) {
this.performSearch(query);
}
});
}
@@ -126,16 +128,7 @@ export class SearchComponent implements OnDestroy {
this.cartService.addItem(itemID);
}
getDiscountedPrice(item: Item): number {
return item.price * (1 - item.discount / 100);
}
getMainImage(item: Item): string {
return item.photos?.[0]?.url || '';
}
// TrackBy function for performance optimization
trackByItemId(index: number, item: Item): number {
return item.itemID;
}
readonly getDiscountedPrice = getDiscountedPrice;
readonly getMainImage = getMainImage;
readonly trackByItemId = trackByItemId;
}