* fix: thread list state order after dragable * fix: new chat order * chore: revert data provider
55 lines
1.7 KiB
TypeScript
55 lines
1.7 KiB
TypeScript
import { useMessages } from '@/hooks/useMessages'
|
|
import { useModelProvider } from '@/hooks/useModelProvider'
|
|
|
|
import { useAppUpdater } from '@/hooks/useAppUpdater'
|
|
import { fetchMessages } from '@/services/messages'
|
|
import { fetchModels } from '@/services/models'
|
|
import { getProviders } from '@/services/providers'
|
|
import { fetchThreads } from '@/services/threads'
|
|
import { ModelManager } from '@janhq/core'
|
|
import { useEffect } from 'react'
|
|
import { useMCPServers } from '@/hooks/useMCPServers'
|
|
import { getMCPConfig } from '@/services/mcp'
|
|
import { useAssistant } from '@/hooks/useAssistant'
|
|
import { getAssistants } from '@/services/assistants'
|
|
|
|
export function DataProvider() {
|
|
const { setProviders } = useModelProvider()
|
|
|
|
const { setMessages } = useMessages()
|
|
const { checkForUpdate } = useAppUpdater()
|
|
const { setServers } = useMCPServers()
|
|
const { setAssistants } = useAssistant()
|
|
|
|
useEffect(() => {
|
|
fetchModels().then((models) => {
|
|
models?.forEach((model) => ModelManager.instance().register(model))
|
|
getProviders().then(setProviders)
|
|
})
|
|
getMCPConfig().then((data) => setServers(data.mcpServers ?? []))
|
|
getAssistants().then((data) =>
|
|
setAssistants((data as unknown as Assistant[]) ?? [])
|
|
)
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
}, [])
|
|
|
|
useEffect(() => {
|
|
fetchThreads().then((threads) => {
|
|
threads.forEach((thread) =>
|
|
fetchMessages(thread.id).then((messages) =>
|
|
setMessages(thread.id, messages)
|
|
)
|
|
)
|
|
})
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
}, [])
|
|
|
|
// Check for app updates
|
|
useEffect(() => {
|
|
checkForUpdate()
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
}, [])
|
|
|
|
return null
|
|
}
|