Merge remote-tracking branch 'origin' into back-office-integration

This commit is contained in:
sdarbinyan
2026-02-28 16:13:14 +04:00
217 changed files with 10170 additions and 5789 deletions

View File

@@ -1,4 +1,4 @@
import { Component, signal, HostListener, OnDestroy, ChangeDetectionStrategy } from '@angular/core';
import { Component, signal, HostListener, OnDestroy, ChangeDetectionStrategy, inject } from '@angular/core';
import { DecimalPipe } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { RouterLink } from '@angular/router';
@@ -7,10 +7,13 @@ import { Item } from '../../models';
import { Subject, Subscription } from 'rxjs';
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
import { getDiscountedPrice, getMainImage, trackByItemId, getBadgeClass } from '../../utils/item.utils';
import { LangRoutePipe } from '../../pipes/lang-route.pipe';
import { TranslatePipe } from '../../i18n/translate.pipe';
import { TranslateService } from '../../i18n/translate.service';
@Component({
selector: 'app-search',
imports: [DecimalPipe, FormsModule, RouterLink],
imports: [DecimalPipe, FormsModule, RouterLink, LangRoutePipe, TranslatePipe],
templateUrl: './search.component.html',
styleUrls: ['./search.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush
@@ -28,6 +31,7 @@ export class SearchComponent implements OnDestroy {
private isLoadingMore = false;
private searchSubject = new Subject<string>();
private searchSubscription: Subscription;
private i18n = inject(TranslateService);
constructor(
private apiService: ApiService,
@@ -48,6 +52,7 @@ export class SearchComponent implements OnDestroy {
ngOnDestroy(): void {
this.searchSubscription.unsubscribe();
this.searchSubject.complete();
if (this.scrollTimeout) clearTimeout(this.scrollTimeout);
}
onSearchInput(query: string): void {
@@ -98,7 +103,7 @@ export class SearchComponent implements OnDestroy {
this.isLoadingMore = false;
},
error: (err) => {
this.error.set('Ошибка при поиске товаров');
this.error.set(this.i18n.t('home.errorTitle'));
this.loading.set(false);
this.isLoadingMore = false;
console.error('Error searching items:', err);
@@ -106,7 +111,7 @@ export class SearchComponent implements OnDestroy {
});
}
private scrollTimeout: any;
private scrollTimeout?: ReturnType<typeof setTimeout>;
@HostListener('window:scroll')
onScroll(): void {