UNPKG

reactive-blocs

Version:
20 lines (19 loc) 736 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useTask = void 0; const react_1 = require("react"); const useTask = (task) => { const [result, setResult] = (0, react_1.useState)(task.result.value); const [loading, setLoading] = (0, react_1.useState)(task.loading.value); const [error, setError] = (0, react_1.useState)(task.error.value); (0, react_1.useEffect)(() => { const subs = [ task.result.subscribe(setResult), task.loading.subscribe(setLoading), task.error.subscribe(setError), ]; return () => subs.forEach(s => s.unsubscribe()); }, [task]); return { result, loading, error }; }; exports.useTask = useTask;