@serpent/common-react
Version:
serpent react common package
18 lines (17 loc) • 661 B
JavaScript
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];
}