import { useEffect, useState } from "react"; export function useLocalStorage(key: string, initial: T): [T, (v: T) => void] { const [value, setValue] = useState(initial); useEffect(() => { try { const stored = localStorage.getItem(key); if (stored !== null) { setValue(JSON.parse(stored)); } } catch (_) {} // eslint-disable-next-line react-hooks/exhaustive-deps }, []); useEffect(() => { try { localStorage.setItem(key, JSON.stringify(value)); } catch (_) {} }, [key, value]); return [value, setValue]; }