UNPKG

@e-group/hooks

Version:

eGroup team react-hooks that share across projects.

46 lines (35 loc) 1.09 kB
"use strict"; 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 }; }