16 lines
485 B
TypeScript
16 lines
485 B
TypeScript
import { useState, useEffect } from "react";
|
|
|
|
const useLocalStorage = (key: string, initialValue: string): [string, React.Dispatch<React.SetStateAction<string>>] => {
|
|
const [value, setValue] = useState<string>(() => {
|
|
const stored = localStorage.getItem(key);
|
|
return stored ? JSON.parse(stored) : initialValue;
|
|
});
|
|
|
|
useEffect(() => {
|
|
localStorage.setItem(key, JSON.stringify(value));
|
|
}, [key, value]);
|
|
|
|
return [value, setValue];
|
|
}
|
|
|
|
export default useLocalStorage; |