@modern-kit/react
Version:
32 lines (29 loc) • 988 B
JavaScript
import { isFunction, setStorageItem, removeStorageItem } from '@modern-kit/utils';
import { useStep } from '../useStep/index.mjs';
import { useState, useCallback } from 'react';
function useStepState(props) {
const initialState = "initialState" in props ? props.initialState : null;
const { type, key } = props?.storageOptions ?? {};
const [_state, _setState] = useState(initialState);
const setState = useCallback(
(newState) => {
_setState((prev) => {
const newStateToUse = isFunction(newState) ? newState(prev) : newState;
if (type && key) {
setStorageItem(type, key, newStateToUse);
}
return newStateToUse;
});
},
[type, key]
);
const clearState = useCallback(() => {
if (type && key) {
removeStorageItem(type, key);
}
_setState(null);
}, [type, key]);
return { state: _state, setState, clearState, ...useStep(props) };
}
export { useStepState };
//# sourceMappingURL=index.mjs.map