import { useEffect, useState } from 'react'; import { createLocalStorage } from '../utils/createLocalStorage.js'; export const useLocalStorageState = ( key: string, initialValue: T, timeToLive?: number, ) => { const { value: initialStoredValue, setValue: setStoredValue } = createLocalStorage(key, initialValue, timeToLive); const [localValue, setLocalValue] = useState(initialStoredValue); useEffect(() => { setStoredValue(localValue); }, [localValue, setStoredValue]); return [ localValue, (value: T | ((prevState: T) => T)) => { setStoredValue(value); setLocalValue(value); }, ] as const; };