@e-group/hooks
Version:
eGroup team react-hooks that share across projects.
42 lines (33 loc) • 1.14 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useCountDown;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _useInterval = _interopRequireDefault(require("./useInterval"));
function useCountDown(value, options) {
const _ref = options || {},
min = _ref.min;
const _useState = (0, _react.useState)(value),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
number = _useState2[0],
setNumber = _useState2[1];
const _useState3 = (0, _react.useState)(false),
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
start = _useState4[0],
setStart = _useState4[1];
(0, _useInterval.default)(() => {
if (min !== undefined) {
if (number - 1 >= min) {
setNumber(number - 1);
} else {
setStart(false);
}
} else {
setNumber(number - 1);
}
}, start ? 1000 : null);
return [number, setStart];
}
;