use-deep-compare-effect
Version:
It's react's useEffect hook, except using deep comparison on the inputs, not reference equality
3 lines (2 loc) • 983 B
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t(e.UseDeepCompareEffect={},e.React)}(this,function(e,t){"use strict";function r(e){var r=t.useRef();return function e(t,r){var n,f;if(t===r)return!0;if(t&&r&&(n=t.constructor)===r.constructor){if(n===Date)return t.getTime()===r.getTime();if(n===RegExp)return t.toString()===r.toString();if(n===Array&&(f=t.length)===r.length){for(;f--&&e(t[f],r[f]););return-1===f}if(n===Object){if(Object.keys(t).length!==Object.keys(r).length)return!1;for(f in t)if(!(f in r&&e(t[f],r[f])))return!1;return!0}}return t!=t&&r!=r}(e,r.current)||(r.current=e),r.current}t=t&&t.hasOwnProperty("default")?t.default:t,e.useDeepCompareEffectNoCheck=function(e,n){t.useEffect(e,r(n))},e.default=function(e,n){t.useEffect(e,r(n))},Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=use-deep-compare-effect.umd.min.js.map