@e-group/hooks
Version:
eGroup team react-hooks that share across projects.
30 lines (27 loc) • 834 B
JavaScript
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import { useState } from 'react';
import useInterval from './useInterval';
export default function useCountDown(value, options) {
const _ref = options || {},
min = _ref.min;
const _useState = useState(value),
_useState2 = _slicedToArray(_useState, 2),
number = _useState2[0],
setNumber = _useState2[1];
const _useState3 = useState(false),
_useState4 = _slicedToArray(_useState3, 2),
start = _useState4[0],
setStart = _useState4[1];
useInterval(() => {
if (min !== undefined) {
if (number - 1 >= min) {
setNumber(number - 1);
} else {
setStart(false);
}
} else {
setNumber(number - 1);
}
}, start ? 1000 : null);
return [number, setStart];
}