* Make thread screen as default screen * Blank state when user have not any model * Cleanup topbar thread screen * Improve style right panel * Add instructions right panel * Styling thread list history * Resolve conflict * Default title new thread * Fix trigger panel sidebar * Make default right panel false when no activethread * Fix CI test * chore: assistant instruction with system prompt * Fix title and blank state explore the hub * Claenup style thread screen and add buble message for assitant * Remove unused import * Styling more menus on thread list and right panel, and make max height textarea 400 pixel * Finished revamp ui thread * Finished system monitor UI * Style box running models * Make animate right panel more smooth * Add status arround textarea for starting model info * Temporary disable hide left panel * chore: system resource monitoring update * copy nits * chore: typo * Reverse icon chevron accordion * Move my models into setting page --------- Co-authored-by: Louis <louis@jan.ai> Co-authored-by: 0xSage <n@pragmatic.vc>
42 lines
983 B
TypeScript
42 lines
983 B
TypeScript
import { Model, ExtensionType, ModelExtension } from '@janhq/core'
|
|
|
|
import { useAtom } from 'jotai'
|
|
|
|
import { useDownloadState } from './useDownloadState'
|
|
|
|
import { extensionManager } from '@/extension/ExtensionManager'
|
|
import { downloadingModelsAtom } from '@/helpers/atoms/Model.atom'
|
|
|
|
export default function useDownloadModel() {
|
|
const { setDownloadState } = useDownloadState()
|
|
const [downloadingModels, setDownloadingModels] = useAtom(
|
|
downloadingModelsAtom
|
|
)
|
|
|
|
const downloadModel = async (model: Model) => {
|
|
// set an initial download state
|
|
setDownloadState({
|
|
modelId: model.id,
|
|
time: {
|
|
elapsed: 0,
|
|
remaining: 0,
|
|
},
|
|
speed: 0,
|
|
percent: 0,
|
|
size: {
|
|
total: 0,
|
|
transferred: 0,
|
|
},
|
|
})
|
|
|
|
setDownloadingModels([...downloadingModels, model])
|
|
await extensionManager
|
|
.get<ModelExtension>(ExtensionType.Model)
|
|
?.downloadModel(model)
|
|
}
|
|
|
|
return {
|
|
downloadModel,
|
|
}
|
|
}
|