feat: use gpt to create project, readme
This commit is contained in:
24
client/src/lib/browserStorage.ts
Normal file
24
client/src/lib/browserStorage.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
const isBrowser = typeof window !== 'undefined';
|
||||
|
||||
export const safeLocalStorage: Storage | undefined = isBrowser ? window.localStorage : undefined;
|
||||
|
||||
export function loadFromStorage<T>(key: string, fallback: T): T {
|
||||
if (!safeLocalStorage) return fallback;
|
||||
try {
|
||||
const raw = safeLocalStorage.getItem(key);
|
||||
if (!raw) return fallback;
|
||||
return JSON.parse(raw) as T;
|
||||
} catch (error) {
|
||||
console.warn(`Failed to load ${key} from localStorage`, error);
|
||||
return fallback;
|
||||
}
|
||||
}
|
||||
|
||||
export function saveToStorage<T>(key: string, value: T): void {
|
||||
if (!safeLocalStorage) return;
|
||||
try {
|
||||
safeLocalStorage.setItem(key, JSON.stringify(value));
|
||||
} catch (error) {
|
||||
console.warn(`Failed to persist ${key} to localStorage`, error);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user