UNPKG

@serpent/common-react

Version:

serpent react common package

18 lines (17 loc) 661 B
import { useState, useEffect } from 'react'; import { useLocalStorage } from 'react-use'; export function usePersistState(persistKey, initialState) { var _a = useLocalStorage(persistKey, initialState), storeValue = _a[0], setStoreValue = _a[1], removeStoreValue = _a[2]; var _b = useState(function () { return typeof storeValue !== 'undefined' ? storeValue : initialState; }), value = _b[0], setValue = _b[1]; useEffect(function () { if (value === undefined) { removeStoreValue(); } else { setStoreValue(value); } }, [value]); return [value, setValue, removeStoreValue]; }