UNPKG

@modern-kit/react

Version:
32 lines (29 loc) 988 B
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