From 3837ddfb2d93db7ed17152d0ef76ad4aadfb170f Mon Sep 17 00:00:00 2001 From: sdarbinyan Date: Mon, 20 Jul 2026 02:45:37 +0400 Subject: [PATCH] fix(icons): replace hand-rolled inline SVGs with Lucide (cart, selectors, carousel) Cart: trash/X/plus/minus/lock icons replaced with app-icon. Removed the standalone EmptyCartIconComponent entirely - it was a duplicate 80px shopping-cart glyph with no unique illustration, only ever used in one place; now app-icon name="cart" inline. Language/region selectors: dropdown chevrons (duplicated 3x with identical path data across two components) unified on chevronDown; region pin, locate (crosshair), and globe icons replaced. New mapPin/locate icons added to the registry. Items carousel: rating star and add-to-cart icons replaced. Co-Authored-By: Claude Sonnet 5 --- .../empty-cart-icon.component.html | 5 --- .../empty-cart-icon.component.scss | 7 ---- .../empty-cart-icon.component.ts | 9 ----- .../items-carousel.component.html | 10 ++---- .../items-carousel.component.ts | 3 +- .../language-selector.component.html | 4 +-- .../language-selector.component.ts | 3 +- .../region-selector.component.html | 20 +++-------- .../region-selector.component.ts | 3 +- src/app/pages/cart/cart.component.html | 34 +++++-------------- src/app/pages/cart/cart.component.ts | 4 +-- src/app/shared/ui/icon/icon-registry.ts | 4 +++ 12 files changed, 28 insertions(+), 78 deletions(-) delete mode 100644 src/app/components/empty-cart-icon/empty-cart-icon.component.html delete mode 100644 src/app/components/empty-cart-icon/empty-cart-icon.component.scss delete mode 100644 src/app/components/empty-cart-icon/empty-cart-icon.component.ts diff --git a/src/app/components/empty-cart-icon/empty-cart-icon.component.html b/src/app/components/empty-cart-icon/empty-cart-icon.component.html deleted file mode 100644 index 18d41ef..0000000 --- a/src/app/components/empty-cart-icon/empty-cart-icon.component.html +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/app/components/empty-cart-icon/empty-cart-icon.component.scss b/src/app/components/empty-cart-icon/empty-cart-icon.component.scss deleted file mode 100644 index 6cbbc40..0000000 --- a/src/app/components/empty-cart-icon/empty-cart-icon.component.scss +++ /dev/null @@ -1,7 +0,0 @@ -:host { - display: block; - - svg { - color: var(--primary-color); - } -} diff --git a/src/app/components/empty-cart-icon/empty-cart-icon.component.ts b/src/app/components/empty-cart-icon/empty-cart-icon.component.ts deleted file mode 100644 index 0490eb1..0000000 --- a/src/app/components/empty-cart-icon/empty-cart-icon.component.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Component, ChangeDetectionStrategy } from '@angular/core'; - -@Component({ - selector: 'app-empty-cart-icon', - templateUrl: './empty-cart-icon.component.html', - styleUrls: ['./empty-cart-icon.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class EmptyCartIconComponent {} diff --git a/src/app/components/items-carousel/items-carousel.component.html b/src/app/components/items-carousel/items-carousel.component.html index b5cd63c..b3a33d7 100644 --- a/src/app/components/items-carousel/items-carousel.component.html +++ b/src/app/components/items-carousel/items-carousel.component.html @@ -36,9 +36,7 @@ @if (product.rating) {
- - - + {{ product.rating }} ({{ product.callbacks?.length || 0 }})
@@ -54,11 +52,7 @@ } diff --git a/src/app/components/items-carousel/items-carousel.component.ts b/src/app/components/items-carousel/items-carousel.component.ts index 6a63bb7..192e635 100644 --- a/src/app/components/items-carousel/items-carousel.component.ts +++ b/src/app/components/items-carousel/items-carousel.component.ts @@ -11,11 +11,12 @@ import { LanguageService } from '../../services/language.service'; import { LangRoutePipe } from '../../pipes/lang-route.pipe'; import { TranslatePipe } from '../../i18n/translate.pipe'; import { ProductFacade } from '../../facades/platform/product.facade'; +import { IconComponent } from '../../shared/ui/icon/icon.component'; @Component({ selector: 'app-items-carousel', templateUrl: './items-carousel.component.html', - imports: [DecimalPipe, RouterLink, CarouselModule, ButtonModule, TagModule, LangRoutePipe, TranslatePipe], + imports: [DecimalPipe, RouterLink, CarouselModule, ButtonModule, TagModule, LangRoutePipe, TranslatePipe, IconComponent], styleUrls: ['./items-carousel.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush }) diff --git a/src/app/components/language-selector/language-selector.component.html b/src/app/components/language-selector/language-selector.component.html index f0fa815..6190a1a 100644 --- a/src/app/components/language-selector/language-selector.component.html +++ b/src/app/components/language-selector/language-selector.component.html @@ -4,9 +4,7 @@ [alt]="languageService.getCurrentLanguage()?.name" class="language-flag"> {{ languageService.getCurrentLanguage()?.code?.toUpperCase() }} - - - +
diff --git a/src/app/components/language-selector/language-selector.component.ts b/src/app/components/language-selector/language-selector.component.ts index 23cfe7f..5a8e656 100644 --- a/src/app/components/language-selector/language-selector.component.ts +++ b/src/app/components/language-selector/language-selector.component.ts @@ -1,9 +1,10 @@ import { Component, HostListener, ElementRef, ChangeDetectionStrategy } from '@angular/core'; import { LanguageService, Language, Currency } from '../../services/language.service'; +import { IconComponent } from '../../shared/ui/icon/icon.component'; @Component({ selector: 'app-language-selector', - imports: [], + imports: [IconComponent], templateUrl: './language-selector.component.html', styleUrls: ['./language-selector.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush diff --git a/src/app/components/region-selector/region-selector.component.html b/src/app/components/region-selector/region-selector.component.html index 38bef6f..8364eb3 100644 --- a/src/app/components/region-selector/region-selector.component.html +++ b/src/app/components/region-selector/region-selector.component.html @@ -1,9 +1,6 @@
@if (dropdownOpen()) { @@ -25,20 +19,14 @@ {{ 'location.chooseRegion' | translate }} @if (!detecting()) { }
diff --git a/src/app/components/region-selector/region-selector.component.ts b/src/app/components/region-selector/region-selector.component.ts index 622e0ed..c3913ad 100644 --- a/src/app/components/region-selector/region-selector.component.ts +++ b/src/app/components/region-selector/region-selector.component.ts @@ -2,10 +2,11 @@ import { Component, ChangeDetectionStrategy, inject, signal, HostListener } from import { LocationService } from '../../services/location.service'; import { Region } from '../../models/location.model'; import { TranslatePipe } from '../../i18n/translate.pipe'; +import { IconComponent } from '../../shared/ui/icon/icon.component'; @Component({ selector: 'app-region-selector', - imports: [TranslatePipe], + imports: [TranslatePipe, IconComponent], templateUrl: './region-selector.component.html', styleUrls: ['./region-selector.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush diff --git a/src/app/pages/cart/cart.component.html b/src/app/pages/cart/cart.component.html index 11d276c..60ca347 100644 --- a/src/app/pages/cart/cart.component.html +++ b/src/app/pages/cart/cart.component.html @@ -3,9 +3,7 @@

{{ 'cart.title' | translate }}

@if (itemCount() > 0) { } @@ -14,7 +12,7 @@ @if (itemCount() === 0) {
- +

{{ 'cart.empty' | translate }}

{{ 'cart.emptyDesc' | translate }}

@@ -38,9 +36,7 @@ @@ -82,15 +78,11 @@
{{ item.quantity }}
@@ -105,9 +97,7 @@
} @@ -181,9 +171,7 @@ @if (!isAuthenticated()) {