UNPKG

@zedux/atoms

Version:

A Molecular State Engine for React

20 lines (19 loc) 707 B
"use strict"; 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;