refactor: route localStorage access through shared LocalStorageService
Sprint 2 high-priority cleanup: cart/language/location services called localStorage directly, bypassing the try/catch safety and core/<domain> pattern used elsewhere (e.g. ProjectEditorDraftStorageService). New core/storage/LocalStorageService centralizes get/set/remove and JSON helpers with private-mode/quota error handling, reused across all three. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { Injectable, signal } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { LocalStorageService } from '../core/storage/local-storage.service';
|
||||
|
||||
export interface Language {
|
||||
code: string;
|
||||
@@ -38,14 +39,14 @@ export class LanguageService {
|
||||
currentLanguage = this.currentLanguageSignal.asReadonly();
|
||||
currentCurrency = this.currentCurrencySignal.asReadonly();
|
||||
|
||||
constructor(private router: Router) {
|
||||
constructor(private router: Router, private readonly storage: LocalStorageService) {
|
||||
// Load saved language from localStorage
|
||||
const savedLang = localStorage.getItem('selectedLanguage');
|
||||
const savedLang = this.storage.getItem('selectedLanguage');
|
||||
if (savedLang && this.languages.find(l => l.code === savedLang && l.enabled)) {
|
||||
this.currentLanguageSignal.set(savedLang);
|
||||
}
|
||||
|
||||
const savedCurrency = localStorage.getItem('selectedCurrency');
|
||||
const savedCurrency = this.storage.getItem('selectedCurrency');
|
||||
if (savedCurrency && this.currencies.find(c => c.code === savedCurrency)) {
|
||||
this.currentCurrencySignal.set(savedCurrency);
|
||||
}
|
||||
@@ -55,7 +56,7 @@ export class LanguageService {
|
||||
const lang = this.languages.find(l => l.code === langCode);
|
||||
if (lang && lang.enabled) {
|
||||
this.currentLanguageSignal.set(langCode);
|
||||
localStorage.setItem('selectedLanguage', langCode);
|
||||
this.storage.setItem('selectedLanguage', langCode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +64,7 @@ export class LanguageService {
|
||||
const currency = this.currencies.find(c => c.code === code);
|
||||
if (currency) {
|
||||
this.currentCurrencySignal.set(code);
|
||||
localStorage.setItem('selectedCurrency', code);
|
||||
this.storage.setItem('selectedCurrency', code);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user