Merge branch 'back-office-integration'

# Conflicts:
#	src/app/pages/cart/cart.component.ts
#	src/app/pages/category/category.component.html
#	src/app/pages/category/category.component.ts
#	src/app/pages/item-detail/item-detail.component.html
#	src/app/pages/item-detail/item-detail.component.ts
#	src/app/pages/legal/company-details/en/company-details-en.component.html
#	src/app/pages/legal/company-details/hy/company-details-hy.component.html
#	src/app/pages/legal/company-details/ru/company-details-ru.component.html
#	src/app/pages/legal/public-offer/en/public-offer-en.component.html
#	src/app/pages/legal/public-offer/ru/public-offer-ru.component.html
#	src/app/pages/search/search.component.ts
#	src/app/services/api.service.ts
This commit is contained in:
sdarbinyan
2026-03-24 00:18:13 +04:00
76 changed files with 6828 additions and 2331 deletions

View File

@@ -9,11 +9,18 @@ export interface Language {
enabled: boolean;
}
export interface Currency {
code: string;
symbol: string;
name: string;
}
@Injectable({
providedIn: 'root'
})
export class LanguageService {
private currentLanguageSignal = signal<string>('ru');
private currentCurrencySignal = signal<string>('RUB');
languages: Language[] = [
{ code: 'ru', name: 'Русский', flag: '🇷🇺', flagSvg: '/flags/ru.svg', enabled: true },
@@ -21,7 +28,15 @@ export class LanguageService {
{ code: 'hy', name: 'Հայերեն', flag: '🇦🇲', flagSvg: '/flags/arm.svg', enabled: false }
];
currencies: Currency[] = [
{ code: 'RUB', symbol: '₽', name: 'Рубль' },
{ code: 'USD', symbol: '$', name: 'Dollar' },
{ code: 'EUR', symbol: '€', name: 'Euro' },
{ code: 'AMD', symbol: '֏', name: 'Դրամ' },
];
currentLanguage = this.currentLanguageSignal.asReadonly();
currentCurrency = this.currentCurrencySignal.asReadonly();
constructor(private router: Router) {
// Load saved language from localStorage
@@ -29,6 +44,11 @@ export class LanguageService {
if (savedLang && this.languages.find(l => l.code === savedLang && l.enabled)) {
this.currentLanguageSignal.set(savedLang);
}
const savedCurrency = localStorage.getItem('selectedCurrency');
if (savedCurrency && this.currencies.find(c => c.code === savedCurrency)) {
this.currentCurrencySignal.set(savedCurrency);
}
}
setLanguage(langCode: string): void {
@@ -39,6 +59,18 @@ export class LanguageService {
}
}
setCurrency(code: string): void {
const currency = this.currencies.find(c => c.code === code);
if (currency) {
this.currentCurrencySignal.set(code);
localStorage.setItem('selectedCurrency', code);
}
}
getCurrentCurrency(): Currency | undefined {
return this.currencies.find(c => c.code === this.currentCurrencySignal());
}
/** Change language and navigate to the same page with the new prefix */
switchLanguage(langCode: string): void {
const lang = this.languages.find(l => l.code === langCode);