18 lines
641 B
TypeScript
18 lines
641 B
TypeScript
import type { LanguageRepository } from '@/domain/language/repository';
|
|
import { isLanguage, type Language } from '@/domain/language/entities';
|
|
import { STORAGE_KEYS } from '@/domain/shared/constants';
|
|
|
|
export class LocalStorageLanguageRepository implements LanguageRepository {
|
|
load(): Language | null {
|
|
if (typeof window === 'undefined') return null;
|
|
|
|
const saved = localStorage.getItem(STORAGE_KEYS.language);
|
|
if (saved && isLanguage(saved)) return saved;
|
|
return null;
|
|
}
|
|
|
|
save(language: Language): void {
|
|
if (typeof window === 'undefined') return;
|
|
localStorage.setItem(STORAGE_KEYS.language, language);
|
|
}
|
|
} |