reactive-blocs
Version:
20 lines (19 loc) • 736 B
JavaScript
;
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;