* chore: handle many issues with app settings and message actions * Update web-app/src/services/mcp.ts Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --------- Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
50 lines
1.6 KiB
TypeScript
50 lines
1.6 KiB
TypeScript
import { useMessages } from '@/hooks/useMessages'
|
|
import { useModelProvider } from '@/hooks/useModelProvider'
|
|
import { useThreads } from '@/hooks/useThreads'
|
|
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'
|
|
|
|
export function DataProvider() {
|
|
const { setProviders } = useModelProvider()
|
|
const { setThreads } = useThreads()
|
|
const { setMessages } = useMessages()
|
|
const { checkForUpdate } = useAppUpdater()
|
|
const { setServers } = useMCPServers()
|
|
|
|
useEffect(() => {
|
|
fetchModels().then((models) => {
|
|
models?.forEach((model) => ModelManager.instance().register(model))
|
|
getProviders().then(setProviders)
|
|
})
|
|
getMCPConfig().then((data) => setServers(data.mcpServers ?? []))
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
}, [])
|
|
|
|
useEffect(() => {
|
|
fetchThreads().then((threads) => {
|
|
setThreads(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
|
|
}
|