UNPKG

recoil-toolkit

Version:
26 lines 961 B
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