jan/web/hooks/useGetConfiguredModels.ts
NamH 143e76a0de
chore: clean up code and remove some lint suppression (#1777)
* chore: clean up code and remove some lint suppression

Signed-off-by: James <james@jan.ai>

* Update .gitignore

---------

Signed-off-by: James <james@jan.ai>
Co-authored-by: James <james@jan.ai>
Co-authored-by: Louis <louis@jan.ai>
2024-01-26 12:19:02 +07:00

31 lines
811 B
TypeScript

import { useCallback, useEffect, useState } from 'react'
import { ExtensionTypeEnum, ModelExtension, Model } from '@janhq/core'
import { extensionManager } from '@/extension/ExtensionManager'
export function useGetConfiguredModels() {
const [loading, setLoading] = useState<boolean>(false)
const [models, setModels] = useState<Model[]>([])
const fetchModels = useCallback(async () => {
setLoading(true)
const models = await getConfiguredModels()
setLoading(false)
setModels(models)
}, [])
useEffect(() => {
fetchModels()
}, [fetchModels])
return { loading, models }
}
const getConfiguredModels = async (): Promise<Model[]> => {
const models = await extensionManager
.get<ModelExtension>(ExtensionTypeEnum.Model)
?.getConfiguredModels()
return models ?? []
}