@modern-kit/react
Version:
23 lines (19 loc) • 677 B
JavaScript
;
var React = require('react');
var utils = require('@modern-kit/utils');
function useConditionalEffect(effectCallback, deps, condition) {
const prevDeps = React.useRef(void 0);
const signal = React.useRef(0);
const shouldRunEffect = utils.isFunction(condition) ? condition(prevDeps.current, deps) : condition;
React.useEffect(
() => {
if (!shouldRunEffect) return;
return effectCallback();
},
// eslint-disable-next-line react-hooks/exhaustive-deps
[shouldRunEffect ? ++signal.current : signal.current]
);
prevDeps.current = deps;
}
exports.useConditionalEffect = useConditionalEffect;
//# sourceMappingURL=index.cjs.map