recoil-toolkit
Version:
26 lines • 961 B
JavaScript
import { atom, selector, selectorFamily, useRecoilValue } from 'recoil';
import { TaskStatus } from '../types';
export const tasks = atom({
key: '@recoil-toolkit.tasks',
default: [],
});
export const runningTasks = selector({
key: '@recoil-toolkit.runningTasks',
get: ({ get }) => get(tasks).filter(t => t.status === TaskStatus.Running),
});
export const taskById = selectorFamily({
key: '@recoil-toolkit.taskById',
get: (id) => ({ get }) => {
return get(tasks).find(t => t.id === id);
},
});
export const lastTaskByKey = selectorFamily({
key: '@recoil-toolkit.lastTaskType',
get: (key) => ({ get }) => {
return get(tasks)
.filter(t => { var _a; return ((_a = t === null || t === void 0 ? void 0 : t.options) === null || _a === void 0 ? void 0 : _a.key) === key; })
.pop();
},
});
export const useRunningTasks = () => useRecoilValue(runningTasks);
//# sourceMappingURL=tasks.js.map