mirror of
https://github.com/langgenius/dify.git
synced 2025-07-31 05:18:40 +00:00
31 lines
1.2 KiB
TypeScript
31 lines
1.2 KiB
TypeScript
'use client'
|
|
|
|
import Loading from '@/app/components/base/loading'
|
|
import { useAppContext } from '@/context/app-context'
|
|
import { ExternalApiPanelProvider } from '@/context/external-api-panel-context'
|
|
import { ExternalKnowledgeApiProvider } from '@/context/external-knowledge-api-context'
|
|
import { useRouter } from 'next/navigation'
|
|
import { useEffect } from 'react'
|
|
|
|
export default function DatasetsLayout({ children }: { children: React.ReactNode }) {
|
|
const { isCurrentWorkspaceEditor, isCurrentWorkspaceDatasetOperator, currentWorkspace, isLoadingCurrentWorkspace } = useAppContext()
|
|
const router = useRouter()
|
|
|
|
useEffect(() => {
|
|
if (isLoadingCurrentWorkspace || !currentWorkspace.id)
|
|
return
|
|
if (!(isCurrentWorkspaceEditor || isCurrentWorkspaceDatasetOperator))
|
|
router.replace('/apps')
|
|
}, [isCurrentWorkspaceEditor, isCurrentWorkspaceDatasetOperator, isLoadingCurrentWorkspace, currentWorkspace, router])
|
|
|
|
if (isLoadingCurrentWorkspace || !(isCurrentWorkspaceEditor || isCurrentWorkspaceDatasetOperator))
|
|
return <Loading type='app' />
|
|
return (
|
|
<ExternalKnowledgeApiProvider>
|
|
<ExternalApiPanelProvider>
|
|
{children}
|
|
</ExternalApiPanelProvider>
|
|
</ExternalKnowledgeApiProvider>
|
|
)
|
|
}
|