UNPKG

react-obsidian

Version:

Dependency injection framework for React and React Native applications

24 lines 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useObservers = void 0; const react_1 = require("react"); const MediatorObservable_1 = require("./mediator/MediatorObservable"); const mapObservablesToValues_1 = require("./mapObservablesToValues"); function useObservers(observables) { const [values, setValues] = (0, react_1.useState)(() => (0, mapObservablesToValues_1.mapObservablesToValues)(observables)); (0, react_1.useEffect)(() => { const mediator = new MediatorObservable_1.MediatorObservable(); const unsubscribers = []; Object.keys(observables).forEach((key) => { const onNext = (value) => setValues({ ...values, [key]: value }); mediator.addSource(observables[key], onNext); unsubscribers.push(() => { observables[key].unsubscribe(onNext); }); }); return () => unsubscribers.forEach((unsubscribe) => unsubscribe()); }, []); return values; } exports.useObservers = useObservers; //# sourceMappingURL=useObservers.js.map