* fix: reduce the number of api call Signed-off-by: James <james@jan.ai> * fix: download progress Signed-off-by: James <james@jan.ai> * chore: save blob * fix: server boot up * fix: download state not updating Signed-off-by: James <james@jan.ai> * fix: copy assets * Add Dockerfile CPU for Jan Server and Jan Web * Add Dockerfile GPU for Jan Server and Jan Web * feat: S3 adapter * Update check find count from ./pre-install and correct copy:asserts command * server add bundleDependencies @janhq/core * server add bundleDependencies @janhq/core * fix: update success/failed download state (#1945) * fix: update success/failed download state Signed-off-by: James <james@jan.ai> * fix: download model progress and state handling for both Desktop and Web --------- Signed-off-by: James <james@jan.ai> Co-authored-by: James <james@jan.ai> Co-authored-by: Louis <louis@jan.ai> * chore: refactor * fix: load models empty first time open * Add Docker compose * fix: assistants onUpdate --------- Signed-off-by: James <james@jan.ai> Co-authored-by: James <james@jan.ai> Co-authored-by: Hien To <tominhhien97@gmail.com> Co-authored-by: NamH <NamNh0122@gmail.com>
40 lines
950 B
TypeScript
40 lines
950 B
TypeScript
import { useCallback, useEffect } from 'react'
|
|
|
|
import {
|
|
Assistant,
|
|
AssistantEvent,
|
|
AssistantExtension,
|
|
ExtensionTypeEnum,
|
|
events,
|
|
} from '@janhq/core'
|
|
|
|
import { useSetAtom } from 'jotai'
|
|
|
|
import { extensionManager } from '@/extension'
|
|
import { assistantsAtom } from '@/helpers/atoms/Assistant.atom'
|
|
|
|
const useAssistants = () => {
|
|
const setAssistants = useSetAtom(assistantsAtom)
|
|
|
|
const getData = useCallback(async () => {
|
|
const assistants = await getLocalAssistants()
|
|
setAssistants(assistants)
|
|
}, [setAssistants])
|
|
|
|
useEffect(() => {
|
|
getData()
|
|
|
|
events.on(AssistantEvent.OnAssistantsUpdate, () => getData())
|
|
return () => {
|
|
events.off(AssistantEvent.OnAssistantsUpdate, () => getData())
|
|
}
|
|
}, [getData])
|
|
}
|
|
|
|
const getLocalAssistants = async (): Promise<Assistant[]> =>
|
|
extensionManager
|
|
.get<AssistantExtension>(ExtensionTypeEnum.Assistant)
|
|
?.getAssistants() ?? []
|
|
|
|
export default useAssistants
|