react-context-root.tsx 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import { FC } from 'react'
  2. import { ChatProvider } from '@/features/chat/context/chat-context'
  3. import { ConnectionProvider } from './connection-context'
  4. import { DetachCompileProvider } from '@/shared/context/detach-compile-context'
  5. import { DetachProvider } from '@/shared/context/detach-context'
  6. import { EditorManagerProvider } from '@/features/ide-react/context/editor-manager-context'
  7. import { EditorProvider } from '@/shared/context/editor-context'
  8. import { FileTreeDataProvider } from '@/shared/context/file-tree-data-context'
  9. import { FileTreeOpenProvider } from '@/features/ide-react/context/file-tree-open-context'
  10. import { FileTreePathProvider } from '@/features/file-tree/contexts/file-tree-path'
  11. import { IdeReactProvider } from '@/features/ide-react/context/ide-react-context'
  12. import { LayoutProvider } from '@/shared/context/layout-context'
  13. import { LocalCompileProvider } from '@/shared/context/local-compile-context'
  14. import { MetadataProvider } from '@/features/ide-react/context/metadata-context'
  15. import { ModalsContextProvider } from '@/features/ide-react/context/modals-context'
  16. import { OnlineUsersProvider } from '@/features/ide-react/context/online-users-context'
  17. import { OutlineProvider } from '@/features/ide-react/context/outline-context'
  18. import { PermissionsProvider } from '@/features/ide-react/context/permissions-context'
  19. import { ProjectProvider } from '@/shared/context/project-context'
  20. import { ProjectSettingsProvider } from '@/features/editor-left-menu/context/project-settings-context'
  21. import { ReferencesProvider } from '@/features/ide-react/context/references-context'
  22. import { SnapshotProvider } from '@/features/ide-react/context/snapshot-context'
  23. import { SplitTestProvider } from '@/shared/context/split-test-context'
  24. import { UserProvider } from '@/shared/context/user-context'
  25. import { UserSettingsProvider } from '@/shared/context/user-settings-context'
  26. export const ReactContextRoot: FC<{ providers?: Record<string, FC> }> = ({
  27. children,
  28. providers = {},
  29. }) => {
  30. const Providers = {
  31. ChatProvider,
  32. ConnectionProvider,
  33. DetachCompileProvider,
  34. DetachProvider,
  35. EditorManagerProvider,
  36. EditorProvider,
  37. FileTreeDataProvider,
  38. FileTreeOpenProvider,
  39. FileTreePathProvider,
  40. IdeReactProvider,
  41. LayoutProvider,
  42. LocalCompileProvider,
  43. MetadataProvider,
  44. ModalsContextProvider,
  45. OnlineUsersProvider,
  46. OutlineProvider,
  47. PermissionsProvider,
  48. ProjectProvider,
  49. ProjectSettingsProvider,
  50. ReferencesProvider,
  51. SnapshotProvider,
  52. SplitTestProvider,
  53. UserProvider,
  54. UserSettingsProvider,
  55. ...providers,
  56. }
  57. return (
  58. <Providers.SplitTestProvider>
  59. <Providers.ModalsContextProvider>
  60. <Providers.ConnectionProvider>
  61. <Providers.IdeReactProvider>
  62. <Providers.UserProvider>
  63. <Providers.UserSettingsProvider>
  64. <Providers.ProjectProvider>
  65. <Providers.SnapshotProvider>
  66. <Providers.FileTreeDataProvider>
  67. <Providers.FileTreePathProvider>
  68. <Providers.ReferencesProvider>
  69. <Providers.DetachProvider>
  70. <Providers.EditorProvider>
  71. <Providers.PermissionsProvider>
  72. <Providers.ProjectSettingsProvider>
  73. <Providers.LayoutProvider>
  74. <Providers.EditorManagerProvider>
  75. <Providers.LocalCompileProvider>
  76. <Providers.DetachCompileProvider>
  77. <Providers.ChatProvider>
  78. <Providers.FileTreeOpenProvider>
  79. <Providers.OnlineUsersProvider>
  80. <Providers.MetadataProvider>
  81. <Providers.OutlineProvider>
  82. {children}
  83. </Providers.OutlineProvider>
  84. </Providers.MetadataProvider>
  85. </Providers.OnlineUsersProvider>
  86. </Providers.FileTreeOpenProvider>
  87. </Providers.ChatProvider>
  88. </Providers.DetachCompileProvider>
  89. </Providers.LocalCompileProvider>
  90. </Providers.EditorManagerProvider>
  91. </Providers.LayoutProvider>
  92. </Providers.ProjectSettingsProvider>
  93. </Providers.PermissionsProvider>
  94. </Providers.EditorProvider>
  95. </Providers.DetachProvider>
  96. </Providers.ReferencesProvider>
  97. </Providers.FileTreePathProvider>
  98. </Providers.FileTreeDataProvider>
  99. </Providers.SnapshotProvider>
  100. </Providers.ProjectProvider>
  101. </Providers.UserSettingsProvider>
  102. </Providers.UserProvider>
  103. </Providers.IdeReactProvider>
  104. </Providers.ConnectionProvider>
  105. </Providers.ModalsContextProvider>
  106. </Providers.SplitTestProvider>
  107. )
  108. }