Fix localStorage to merge with defaults for new fields

Old saved settings were missing new edgeUrl field, causing Edge TTS to fail.
Now merges stored values with defaults so new fields are included.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Gemini Agent
2026-01-18 01:53:34 +00:00
parent 6a29e7263f
commit f5de4749db

View File

@@ -10,13 +10,15 @@ export function useLocalStorage<T>(key: string, initialValue: T): [T, (value: T
try { try {
const item = window.localStorage.getItem(key); const item = window.localStorage.getItem(key);
if (item) { if (item) {
setStoredValue(JSON.parse(item)); // Merge stored value with defaults to handle new fields
const parsed = JSON.parse(item);
setStoredValue({ ...initialValue, ...parsed });
} }
} catch (error) { } catch (error) {
console.error(`Error reading localStorage key "${key}":`, error); console.error(`Error reading localStorage key "${key}":`, error);
} }
setIsHydrated(true); setIsHydrated(true);
}, [key]); }, [key, initialValue]);
const setValue = (value: T | ((prev: T) => T)) => { const setValue = (value: T | ((prev: T) => T)) => {
try { try {