You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12345678910111213141516171819202122232425262728
  1. 'use client'
  2. import Loading from '@/app/components/base/loading'
  3. import { useAppContext } from '@/context/app-context'
  4. import { ExternalApiPanelProvider } from '@/context/external-api-panel-context'
  5. import { ExternalKnowledgeApiProvider } from '@/context/external-knowledge-api-context'
  6. import { useRouter } from 'next/navigation'
  7. import { useEffect } from 'react'
  8. export default function DatasetsLayout({ children }: { children: React.ReactNode }) {
  9. const { isCurrentWorkspaceEditor, isCurrentWorkspaceDatasetOperator } = useAppContext()
  10. const router = useRouter()
  11. useEffect(() => {
  12. if (!isCurrentWorkspaceEditor && !isCurrentWorkspaceDatasetOperator)
  13. router.replace('/apps')
  14. }, [isCurrentWorkspaceEditor, isCurrentWorkspaceDatasetOperator, router])
  15. if (!isCurrentWorkspaceEditor && !isCurrentWorkspaceDatasetOperator)
  16. return <Loading type='app' />
  17. return (
  18. <ExternalKnowledgeApiProvider>
  19. <ExternalApiPanelProvider>
  20. {children}
  21. </ExternalApiPanelProvider>
  22. </ExternalKnowledgeApiProvider>
  23. )
  24. }