@zedux/atoms
Version:
A Molecular State Engine for React
20 lines (19 loc) • 707 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.injectCallback = void 0;
const injectAtomGetters_1 = require("./injectAtomGetters");
const injectMemo_1 = require("./injectMemo");
/**
* Memoizes a callback function and wraps it in an `ecosystem.batch()` call.
*
* To memoize a callback without automatic batching, use `injectMemo` instead:
*
* ```ts
* injectMemo(() => myCallback, [])
* ```
*/
const injectCallback = (callback, deps) => {
const { ecosystem } = (0, injectAtomGetters_1.injectAtomGetters)();
return (0, injectMemo_1.injectMemo)(() => (...args) => ecosystem.batch(() => callback(...args)), deps);
};
exports.injectCallback = injectCallback;