import * as O from 'fp-ts/Option' import { pipe } from 'fp-ts/lib/function' import { atom, selector } from 'recoil' import { RPCResult } from '../types' export const downloadsState = atom>({ key: 'downloadsState', default: O.none }) export const loadingDownloadsState = selector({ key: 'loadingDownloadsState', get: ({ get }) => O.isNone(get(downloadsState)) }) export const activeDownloadsState = selector({ key: 'activeDownloadsState', get: ({ get }) => pipe( get(downloadsState), O.getOrElse(() => new Array()) ) })