use-flush
Version:
React hooks for flushing frequently changing state. It can optimize application via reducing re-rendering caused of changing state.
2 lines (1 loc) • 546 B
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var react=require("react"),useFlush=function(e,t){void 0===t&&(t=1e3);var u=react.useState(-1),r=u[0],s=u[1],o=react.useState([]),a=o[0],n=o[1],c=react.useMemo(function(){return{value:[]}},[r]);return react.useEffect(function(){c.value.push(e);var u=Date.now();void 0===c.now&&(c.now=u),void 0===c.pid&&(c.pid=window.setTimeout(function(){n(c.value),s(u)},t-(u-c.now)))},[e]),react.useEffect(function(){-1!==r&&s(-1)},[r]),a};exports.default=useFlush,exports.useFlush=useFlush;