Useful React and Preact hooks
Local storage
function useLocalStorage(key: string, init: T): Signal {
let raw = localStorage.getItem(key);
let val = raw ? JSON.parse(raw) : init;
let signal = useSignal(val);
useSignalEffect(() => {
localStorage.setItem(
key,
JSON.stringify(signal.value)
);
});
return signal;
}