UNPKG

eip-components-web

Version:
20 lines 809 B
import { useState, useMemo, useEffect } from 'react'; const usePersistedState = (key, decode, encode, isLive, defaultState) => { const [state, setState] = useState(); useEffect(() => { const stringPersistedState = localStorage.getItem(key); const persistedState = stringPersistedState ? decode(stringPersistedState) : defaultState; setState(persistedState); }, [defaultState]); const setPersistedState = useMemo(() => (newState) => { const encodedState = encode(newState); if (isLive) setState(newState); global?.localStorage?.setItem(key, encodedState); }, [setState, key, encode]); return [state, setPersistedState]; }; export default usePersistedState; //# sourceMappingURL=usePersistedState.js.map