@modern-kit/react
Version:
34 lines (30 loc) • 1.01 kB
JavaScript
;
var utils = require('@modern-kit/utils');
var hooksUseStep = require('../useStep/index.cjs');
var React = require('react');
function useStepState(props) {
const initialState = "initialState" in props ? props.initialState : null;
const { type, key } = props?.storageOptions ?? {};
const [_state, _setState] = React.useState(initialState);
const setState = React.useCallback(
(newState) => {
_setState((prev) => {
const newStateToUse = utils.isFunction(newState) ? newState(prev) : newState;
if (type && key) {
utils.setStorageItem(type, key, newStateToUse);
}
return newStateToUse;
});
},
[type, key]
);
const clearState = React.useCallback(() => {
if (type && key) {
utils.removeStorageItem(type, key);
}
_setState(null);
}, [type, key]);
return { state: _state, setState, clearState, ...hooksUseStep.useStep(props) };
}
exports.useStepState = useStepState;
//# sourceMappingURL=index.cjs.map