22 lines
1.1 KiB
JavaScript
22 lines
1.1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
var tslib_1 = require("tslib");
|
|
var fast_shallow_equal_1 = require("fast-shallow-equal");
|
|
var useCustomCompareEffect_1 = tslib_1.__importDefault(require("./useCustomCompareEffect"));
|
|
var isPrimitive = function (val) { return val !== Object(val); };
|
|
var shallowEqualDepsList = function (prevDeps, nextDeps) {
|
|
return prevDeps.every(function (dep, index) { return fast_shallow_equal_1.equal(dep, nextDeps[index]); });
|
|
};
|
|
var useShallowCompareEffect = function (effect, deps) {
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
if (!(deps instanceof Array) || !deps.length) {
|
|
console.warn('`useShallowCompareEffect` should not be used with no dependencies. Use React.useEffect instead.');
|
|
}
|
|
if (deps.every(isPrimitive)) {
|
|
console.warn('`useShallowCompareEffect` should not be used with dependencies that are all primitive values. Use React.useEffect instead.');
|
|
}
|
|
}
|
|
useCustomCompareEffect_1.default(effect, deps, shallowEqualDepsList);
|
|
};
|
|
exports.default = useShallowCompareEffect;
|