root-context.tsx 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { FC } from 'react'
  2. import createSharedContext from 'react2angular-shared-context'
  3. import { UserProvider } from './user-context'
  4. import { IdeAngularProvider } from './ide-angular-provider'
  5. import { EditorProvider } from './editor-context'
  6. import { LocalCompileProvider } from './local-compile-context'
  7. import { DetachCompileProvider } from './detach-compile-context'
  8. import { LayoutProvider } from './layout-context'
  9. import { DetachProvider } from './detach-context'
  10. import { ChatProvider } from '@/features/chat/context/chat-context'
  11. import { ProjectProvider } from './project-context'
  12. import { SplitTestProvider } from './split-test-context'
  13. import { FileTreeDataProvider } from './file-tree-data-context'
  14. import { ProjectSettingsProvider } from '@/features/editor-left-menu/context/project-settings-context'
  15. import { FileTreePathProvider } from '@/features/file-tree/contexts/file-tree-path'
  16. import { UserSettingsProvider } from '@/shared/context/user-settings-context'
  17. import { OutlineProvider } from '@/features/ide-react/context/outline-context'
  18. import { Ide } from '@/shared/context/ide-context'
  19. export const ContextRoot: FC<{ ide?: Ide }> = ({ children, ide }) => {
  20. return (
  21. <SplitTestProvider>
  22. <IdeAngularProvider ide={ide}>
  23. <UserProvider>
  24. <UserSettingsProvider>
  25. <ProjectProvider>
  26. <FileTreeDataProvider>
  27. <FileTreePathProvider>
  28. <DetachProvider>
  29. <EditorProvider>
  30. <ProjectSettingsProvider>
  31. <LayoutProvider>
  32. <LocalCompileProvider>
  33. <DetachCompileProvider>
  34. <ChatProvider>
  35. <OutlineProvider>{children}</OutlineProvider>
  36. </ChatProvider>
  37. </DetachCompileProvider>
  38. </LocalCompileProvider>
  39. </LayoutProvider>
  40. </ProjectSettingsProvider>
  41. </EditorProvider>
  42. </DetachProvider>
  43. </FileTreePathProvider>
  44. </FileTreeDataProvider>
  45. </ProjectProvider>
  46. </UserSettingsProvider>
  47. </UserProvider>
  48. </IdeAngularProvider>
  49. </SplitTestProvider>
  50. )
  51. }
  52. export const rootContext = createSharedContext(ContextRoot)