Spaces:
Sleeping
Sleeping
| 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]; | |
| }; | |