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,12 +1,12 @@
<div class="search-container">
<div class="search-header">
<h1>Поиск товаров</h1>
<h1>{{ 'search.title' | translate }}</h1>
<div class="search-box">
<input
type="text"
[(ngModel)]="searchQuery"
(input)="onSearchInput(searchQuery)"
placeholder="Введите название товара..."
[placeholder]="'search.placeholder' | translate"
class="search-input"
autofocus
/>
@@ -21,21 +21,21 @@
@if (searchQuery && items().length > 0) {
<div class="results-count">
Найдено товаров: {{ items().length }}@if (totalResults() > items().length) { из {{ totalResults() }} }
{{ 'search.resultsCount' | translate }} {{ items().length }}@if (totalResults() > items().length) { {{ 'search.of' | translate }} {{ totalResults() }} }
</div>
}
@if (loading() && items().length === 0) {
<div class="loading-initial">
<div class="spinner"></div>
<p>Поиск...</p>
<p>{{ 'search.searching' | translate }}</p>
</div>
}
@if (error()) {
<div class="error">
<p>{{ error() }}</p>
<button (click)="performSearch(searchQuery)">Попробовать снова</button>
<button (click)="performSearch(searchQuery)">{{ 'search.retry' | translate }}</button>
</div>
}
@@ -47,9 +47,9 @@
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.2929 18.2929C18.6834 17.9024 19.3166 17.9024 19.7071 18.2929L25.7071 24.2929C26.0976 24.6834 26.0976 25.3166 25.7071 25.7071C25.3166 26.0976 24.6834 26.0976 24.2929 25.7071L18.2929 19.7071C17.9024 19.3166 17.9024 18.6834 18.2929 18.2929Z" fill="#a1b4b5" />
</svg>
</div>
<h2>Ничего не найдено</h2>
<p>По запросу "{{ searchQuery }}" товары не найдены</p>
<p class="hint">Попробуйте изменить запрос или используйте другие ключевые слова</p>
<h2>{{ 'search.noResults' | translate }}</h2>
<p>{{ 'search.noResultsFor' | translate:{ query: searchQuery } }}</p>
<p class="hint">{{ 'search.noResultsHint' | translate }}</p>
</div>
}
@@ -57,7 +57,7 @@
<div class="items-grid">
@for (item of items(); track trackByItemId($index, item)) {
<div class="item-card">
<a [routerLink]="['/item', item.itemID]" class="item-link">
<a [routerLink]="['/item', item.itemID] | langRoute" class="item-link">
<div class="item-image">
<img [src]="getMainImage(item)" [alt]="item.name" loading="lazy" decoding="async" width="300" height="300" />
@if (item.discount > 0) {
@@ -106,7 +106,7 @@
</a>
<button class="add-to-cart-btn" (click)="addToCart(item.itemID, $event)">
В корзину
{{ 'search.addToCart' | translate }}
</button>
</div>
}
@@ -115,13 +115,13 @@
@if (loading() && items().length > 0) {
<div class="loading-more">
<div class="spinner"></div>
<p>Загрузка...</p>
<p>{{ 'search.loadingMore' | translate }}</p>
</div>
}
@if (!hasMore() && items().length > 0) {
<div class="no-more">
<p>Все результаты загружены</p>
<p>{{ 'search.allLoaded' | translate }}</p>
</div>
}
}
@@ -134,7 +134,7 @@
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.2929 18.2929C18.6834 17.9024 19.3166 17.9024 19.7071 18.2929L25.7071 24.2929C26.0976 24.6834 26.0976 25.3166 25.7071 25.7071C25.3166 26.0976 24.6834 26.0976 24.2929 25.7071L18.2929 19.7071C17.9024 19.3166 17.9024 18.6834 18.2929 18.2929Z" fill="#d3dad9" />
</svg>
</div>
<p>Введите запрос для поиска товаров</p>
<p>{{ 'search.emptyState' | translate }}</p>
</div>
}
</div>