1import { useState } from "react";
2
3function useLocalStorage<T>(key: string, initialValue: T) {
4 const [storedValue, setStoredValue] = useState<T>(() => {
5 try {
6 const item = window.localStorage.getItem(key);
7 return item ? JSON.parse(item) : initialValue;
8 } catch (error) {
9 console.error(error);
10 return initialValue;
11 }
12 });
13
14 const setValue = (value: T) => {
15 try {
16 setStoredValue(value);
17 window.localStorage.setItem(key, JSON.stringify(value));
18 } catch (error) {
19 console.error(error);
20 }
21 };
22
23 return [storedValue, setValue] as const;
24}
25
26export default useLocalStorage;