useLocalStorage = (key, initialValue) => {
const [storedValue, setStoredValue] = useState(() => {
const item = localStorage.getItem(key);
return item === undefined ? initialValue : JSON.parse(item);
});
const setValue = (value) => {
value = value instanceof Function ? value(storedValue) : value;
setStoredValue(value);
localStorage.setItem(key, JSON.stringify(value));
};
return [storedValue, setValue];
}