Spaces:
Sleeping
Sleeping
File size: 605 Bytes
f80b091 3ba9c0c f80b091 3ba9c0c f80b091 3ba9c0c f80b091 3ba9c0c f80b091 3ba9c0c f80b091 3ba9c0c f80b091 3ba9c0c f80b091 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import { useEffect, useState } from 'react';
export const useLocalStorage = <T>(
key: string,
initialValue: T,
): [T, (value: T) => void] => {
const [storedValue, setStoredValue] = useState(initialValue);
useEffect(() => {
// Retrieve from localStorage
const item = window.localStorage.getItem(key);
if (item) {
setStoredValue(JSON.parse(item));
}
}, [key]);
const setValue = (value: T) => {
// Save state
setStoredValue(value);
// Save to localStorage
window.localStorage.setItem(key, JSON.stringify(value));
};
return [storedValue, setValue];
};
|