UNPKG

nrgy

Version:

The library for reactive programming using efficient computing and MVC/MVVM patterns

49 lines (38 loc) 1.4 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); var _chunkDUWWIS26cjs = require('./chunk-DUWWIS26.cjs'); var _chunk4OYRW4HCcjs = require('./chunk-4OYRW4HC.cjs'); // src/react/useAtom.ts var _react = require('react'); function useAtom(source) { const [value, setValue] = _react.useState.call(void 0, source); _react.useEffect.call(void 0, () => { const subscription = _chunk4OYRW4HCcjs.effect.call(void 0, source, (value2) => setValue(value2)); return subscription.destroy; }, [source]); return value; } // src/react/useAtoms.ts var EMPTY_ATOMS_SOURCES = {}; var EMPTY_ATOMS_RESULTS = {}; var useAtoms = function(sources) { const sourcesArg = sources != null ? sources : EMPTY_ATOMS_SOURCES; const $result = _react.useMemo.call(void 0, () => createComputedAtoms(sourcesArg), [sourcesArg]); return useAtom($result); }; function createComputedAtoms(sources) { if (sources === EMPTY_ATOMS_SOURCES) { return _chunk4OYRW4HCcjs.compute.call(void 0, () => EMPTY_ATOMS_RESULTS); } return _chunk4OYRW4HCcjs.compute.call(void 0, () => { const sourceAtoms = sources; const result = {}; for (const key of Object.keys(sourceAtoms)) { result[key] = sourceAtoms[key](); } return result; }, { equal: _chunkDUWWIS26cjs.objectEquals } ); } exports.useAtom = useAtom; exports.useAtoms = useAtoms;