jotai migration (#221)
This commit is contained in:
@@ -1,45 +1,34 @@
|
||||
import { pipe } from 'fp-ts/lib/function'
|
||||
import { of } from 'fp-ts/lib/Task'
|
||||
import { getOrElse } from 'fp-ts/lib/TaskEither'
|
||||
import { atom, selector } from 'recoil'
|
||||
import { ffetch } from '../lib/httpClient'
|
||||
import { RPCVersion } from '../types'
|
||||
import { rpcClientState } from './rpc'
|
||||
import { serverURL } from './settings'
|
||||
import { atom } from 'jotai'
|
||||
|
||||
export const connectedState = atom({
|
||||
key: 'connectedState',
|
||||
default: false
|
||||
export const connectedState = atom(false)
|
||||
|
||||
export const freeSpaceBytesState = atom(async (get) => {
|
||||
const res = await get(rpcClientState)
|
||||
.freeSpace()
|
||||
.catch(() => ({ result: 0 }))
|
||||
return res.result
|
||||
})
|
||||
|
||||
export const freeSpaceBytesState = selector({
|
||||
key: 'freeSpaceBytesState',
|
||||
get: async ({ get }) => {
|
||||
const res = await get(rpcClientState).freeSpace()
|
||||
.catch(() => ({ result: 0 }))
|
||||
return res.result
|
||||
}
|
||||
export const availableDownloadPathsState = atom(async (get) => {
|
||||
const res = await get(rpcClientState).directoryTree()
|
||||
.catch(() => ({ result: [] }))
|
||||
return res.result
|
||||
})
|
||||
|
||||
export const availableDownloadPathsState = selector({
|
||||
key: 'availableDownloadPathsState',
|
||||
get: async ({ get }) => {
|
||||
const res = await get(rpcClientState).directoryTree()
|
||||
.catch(() => ({ result: [] }))
|
||||
return res.result
|
||||
}
|
||||
})
|
||||
|
||||
export const ytdlpRpcVersionState = selector<RPCVersion>({
|
||||
key: 'ytdlpRpcVersionState',
|
||||
get: async ({ get }) => await pipe(
|
||||
ffetch<RPCVersion>(`${get(serverURL)}/api/v1/version`),
|
||||
getOrElse(() => pipe(
|
||||
{
|
||||
rpcVersion: 'unknown version',
|
||||
ytdlpVersion: 'unknown version',
|
||||
},
|
||||
of
|
||||
)),
|
||||
)()
|
||||
})
|
||||
export const ytdlpRpcVersionState = atom<Promise<RPCVersion>>(async (get) => await pipe(
|
||||
ffetch<RPCVersion>(`${get(serverURL)}/api/v1/version`),
|
||||
getOrElse(() => pipe(
|
||||
{
|
||||
rpcVersion: 'unknown version',
|
||||
ytdlpVersion: 'unknown version',
|
||||
},
|
||||
of
|
||||
)),
|
||||
)())
|
||||
Reference in New Issue
Block a user