UNPKG

use-immediate-effect

Version:

Because sometimes you want your effects to run right away

1 lines 520 B
"use strict";var _react=require("react");Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=useImmediateEffect;function depsDiff(a,b){return!(Array.isArray(a)&&Array.isArray(b)&&a.length===b.length&&a.every(function(a,c){return Object.is(a,b[c])}))}function useImmediateEffect(a,b){var c=(0,_react.useRef)(),d=(0,_react.useRef)();(!d.current||depsDiff(d.current,b))&&(d.current=b,c.current&&c.current(),c.current=a()),(0,_react.useEffect)(function(){return function(){c.current&&c.current()}},[])}