UNPKG

@boomerang-io/utils

Version:

A library of reusable utilities and hooks for React webapps on the Boomerang platform.

33 lines (32 loc) 824 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); function useCountdown(_ref) { let { countdown, onCountdownEnd, reset } = _ref; const [ct, setCountdown] = (0, _react.useState)(countdown); const timer = (0, _react.useRef)(null); (0, _react.useEffect)(() => { if (reset) setCountdown(countdown); if (ct < 1) { setCountdown(countdown); onCountdownEnd(); } clearInterval(timer.current); const countdownCounter = () => { setCountdown(ct - 1); }; timer.current = setInterval(countdownCounter, 1000); return function cleanup() { clearInterval(timer); }; }, [reset, ct, countdown, onCountdownEnd]); return ct; } var _default = exports.default = useCountdown;