root-context.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import PropTypes from 'prop-types'
  2. import createSharedContext from 'react2angular-shared-context'
  3. import { UserProvider } from './user-context'
  4. import { IdeProvider } from './ide-context'
  5. import { EditorProvider } from './editor-context'
  6. import { CompileProvider } from './compile-context'
  7. import { LayoutProvider } from './layout-context'
  8. import { DetachProvider } from './detach-context'
  9. import { ChatProvider } from '../../features/chat/context/chat-context'
  10. import { ProjectProvider } from './project-context'
  11. import { SplitTestProvider } from './split-test-context'
  12. export function ContextRoot({ children, ide, settings }) {
  13. return (
  14. <SplitTestProvider>
  15. <IdeProvider ide={ide}>
  16. <UserProvider>
  17. <ProjectProvider>
  18. <EditorProvider settings={settings}>
  19. <DetachProvider>
  20. <LayoutProvider>
  21. <CompileProvider>
  22. <ChatProvider>{children}</ChatProvider>
  23. </CompileProvider>
  24. </LayoutProvider>
  25. </DetachProvider>
  26. </EditorProvider>
  27. </ProjectProvider>
  28. </UserProvider>
  29. </IdeProvider>
  30. </SplitTestProvider>
  31. )
  32. }
  33. ContextRoot.propTypes = {
  34. children: PropTypes.any,
  35. ide: PropTypes.any.isRequired,
  36. settings: PropTypes.any.isRequired,
  37. }
  38. export const rootContext = createSharedContext(ContextRoot)