jan/web/hooks/useGetDownloadedModels.ts
NamH 55ab4ae70f
fix(thread): #1043 default model to prefer active model (#1070)
Signed-off-by: James <james@jan.ai>
Co-authored-by: James <james@jan.ai>
2023-12-19 10:51:41 +07:00

27 lines
752 B
TypeScript

import { useEffect } from 'react'
import { ExtensionType, ModelExtension, Model } from '@janhq/core'
import { atom, useAtom } from 'jotai'
import { extensionManager } from '@/extension/ExtensionManager'
const downloadedModelsAtom = atom<Model[]>([])
export function useGetDownloadedModels() {
const [downloadedModels, setDownloadedModels] = useAtom(downloadedModelsAtom)
useEffect(() => {
getDownloadedModels().then((downloadedModels) => {
setDownloadedModels(downloadedModels)
})
}, [setDownloadedModels])
return { downloadedModels, setDownloadedModels }
}
export const getDownloadedModels = async (): Promise<Model[]> =>
extensionManager
.get<ModelExtension>(ExtensionType.Model)
?.getDownloadedModels() ?? []