@e-group/hooks
Version:
eGroup team react-hooks that share across projects.
46 lines (35 loc) • 1.09 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useStepper;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _cache = _interopRequireDefault(require("./cache"));
function useStepper(key, totalSteps, defaultValue = 0) {
var _cache$get;
const _useState = (0, _react.useState)((_cache$get = _cache.default.get(key)) !== null && _cache$get !== void 0 ? _cache$get : defaultValue),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
value = _useState2[0],
setValue = _useState2[1];
(0, _react.useEffect)(() => {
_cache.default.set(key, value);
}, [key, value]);
const handlePrev = () => {
if (value > 0) {
setValue(val => val - 1);
}
};
const handleNext = () => {
if (value < totalSteps) {
setValue(val => val + 1);
}
};
return {
value,
handlePrev,
handleNext,
setValue
};
}