import { proxy, snapshot, subscribe } from 'valtio'; export function proxyWithPersistant( val: V, opts: { key: string; }, ) { const local = localStorage.getItem(opts.key); const state = proxy(local ? JSON.parse(local) : val); subscribe(state, () => { localStorage.setItem(opts.key, JSON.stringify(snapshot(state))); }); return state; }