UNPKG

@livelybone/use-count-down

Version:
10 lines (8 loc) 1.43 kB
/** * Bundle of @livelybone/use-count-down * Generated: 2019-10-23 * Version: 1.0.0 * License: MIT * Author: 2631541504@qq.com */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):(t=t||self).useCountDown=e(t.React)}(this,function(f){"use strict";function a(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t)){var n=[],r=!0,u=!1,o=void 0;try{for(var c,i=t[Symbol.iterator]();!(r=(c=i.next()).done)&&(n.push(c.value),!e||n.length!==e);r=!0);}catch(t){u=!0,o=t}finally{try{r||null==i.return||i.return()}finally{if(u)throw o}}return n}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}return function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:60,n=f.useRef(null),e=a(f.useState(t),2),r=e[0],u=e[1],o=a(f.useState(!1),2),c=o[0],i=o[1];return f.useEffect(function(){return function(){return clearInterval(n.current)}},[]),f.useMemo(function(){return{count:r,isRunning:c,start:function(e){clearInterval(n.current),u(t),i(!0),n.current=setInterval(function(){u(function(t){return t<=1&&(clearInterval(n.current),n.current=null,i(!1),"function"==typeof e&&e()),t-1})},1e3)},stop:function(){clearInterval(n.current),i(!1)}}},[r,c,t])}});