jan/web/hooks/useDownloadState.ts
NamH ec9b5bf682
fix: update new api from cortex to support 0.5.0 (#3221)
* fix: update new api from cortex to support 0.5.0

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

* fix stop button for streaming

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

* fix stop inference for nonstreaming

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

* chore: remove umami prevent tracking call to vercel

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

* add warning modal when running more than 2 model concurrently

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

* fix: skip summarize if abort

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

* 0.5.0-3

* add inference error popup

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

* add back import local model

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

* fix: max token issue (#3225)

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

* format status

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

* fix migration missing instructions

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

* fix: wait for cortex process overlay should be on top (#3224)

* fix: wait for cortex process overlay should be on top

* chore: update cortex.js

* Cortex 0.5.0-5

* add import model to my model screen

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

* fix: should migrate symlink models (#3226)

* fix import on windows (#3229)

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

* fix yarn lint

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

* fix: clean up port before start jan (#3232)

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

---------

Signed-off-by: James <namnh0122@gmail.com>
Co-authored-by: Van Pham <64197333+Van-QA@users.noreply.github.com>
Co-authored-by: Louis <louis@jan.ai>
2024-08-02 09:37:04 +07:00

48 lines
1.1 KiB
TypeScript

import { DownloadState2, DownloadStatus, DownloadType2 } from '@janhq/core'
import { atom } from 'jotai'
export const downloadStateListAtom = atom<DownloadState2[]>([])
export const addDownloadModelStateAtom = atom(
null,
(_get, set, modelId: string) => {
const state: DownloadState2 = {
id: modelId,
title: modelId,
type: DownloadType2.Model,
progress: 0,
status: DownloadStatus.Downloading,
children: [
{
id: modelId,
time: {
elapsed: 0,
remaining: 0,
},
size: {
total: 0,
transferred: 0,
},
status: DownloadStatus.Downloading,
},
],
}
set(downloadStateListAtom, (old) => [...old, state])
}
)
/**
* Used to remove a download item from a list of downloading.
*
* @param downloadId The download id to be removed. If item is model then
* this is the modelId.
*/
export const removeDownloadSuccessItemAtom = atom(
null,
(_get, set, downloadId: string) => {
set(downloadStateListAtom, (old) =>
old.filter((downloadState) => downloadState.id !== downloadId)
)
}
)