import { useEffect, useState } from 'react'; export function useLocalStorageState(key: string, initialValue: T) { const [value, setValue] = useState(() => { try { const raw = window.localStorage.getItem(key); if (raw == null) return initialValue; return JSON.parse(raw) as T; } catch { return initialValue; } }); useEffect(() => { try { window.localStorage.setItem(key, JSON.stringify(value)); } catch { // ignore } }, [key, value]); return [value, setValue] as const; }