jan/web/helpers/atoms/SetupRemoteModel.atom.ts
Faisal Amir e8ee694abd
feat: new starter screen (#3217)
* feat: starter screen

* chore: update flow starter screen

* fix CI

Signed-off-by: James <namnh0122@gmail.com>

* chore: update variable name

* chore: fix CI

* update download cortex binary

Signed-off-by: James <namnh0122@gmail.com>

---------

Signed-off-by: James <namnh0122@gmail.com>
Co-authored-by: James <namnh0122@gmail.com>
2024-07-31 16:41:39 +07:00

40 lines
1.2 KiB
TypeScript

import { RemoteEngine } from '@janhq/core'
import { atom } from 'jotai'
import { atomWithStorage } from 'jotai/utils'
export type SetupRemoteModelStage = 'NONE' | 'SETUP_INTRO' | 'SETUP_API_KEY'
const IS_ANY_REMOTE_MODEL_CONFIGURED = 'isAnyRemoteModelConfigured'
export const isAnyRemoteModelConfiguredAtom = atomWithStorage(
IS_ANY_REMOTE_MODEL_CONFIGURED,
false
)
const remoteModelSetUpStageAtom = atom<SetupRemoteModelStage>('NONE')
const engineBeingSetUpAtom = atom<RemoteEngine | undefined>(undefined)
const remoteEngineBeingSetUpMetadataAtom = atom<
Record<string, unknown> | undefined
>(undefined)
export const setUpRemoteModelStageAtom = atom(
(get) => ({
stage: get(remoteModelSetUpStageAtom),
remoteEngine: get(engineBeingSetUpAtom),
metadata: get(remoteEngineBeingSetUpMetadataAtom),
}),
(
_get,
set,
stage: SetupRemoteModelStage,
remoteEngine: RemoteEngine | undefined,
metadata?: Record<string, unknown> | undefined
) => {
set(remoteModelSetUpStageAtom, stage)
set(engineBeingSetUpAtom, remoteEngine)
set(remoteEngineBeingSetUpMetadataAtom, metadata)
}
)
export const navigateToSetUpApiKeyAtom = atom(null, (_get, set) => {
set(remoteModelSetUpStageAtom, 'SETUP_API_KEY')
})