root-context.js 1002 B

123456789101112131415161718192021222324252627282930
  1. import React from 'react'
  2. import PropTypes from 'prop-types'
  3. import { ApplicationProvider } from './application-context'
  4. import { EditorProvider } from './editor-context'
  5. import createSharedContext from 'react2angular-shared-context'
  6. import { ChatProvider } from '../../features/chat/context/chat-context'
  7. import { LayoutProvider } from './layout-context'
  8. import { CompileProvider } from './compile-context'
  9. export function ContextRoot({ children, ide, settings }) {
  10. return (
  11. <ApplicationProvider>
  12. <EditorProvider ide={ide} settings={settings}>
  13. <CompileProvider $scope={ide.$scope}>
  14. <LayoutProvider $scope={ide.$scope}>
  15. <ChatProvider>{children}</ChatProvider>
  16. </LayoutProvider>
  17. </CompileProvider>
  18. </EditorProvider>
  19. </ApplicationProvider>
  20. )
  21. }
  22. ContextRoot.propTypes = {
  23. children: PropTypes.any,
  24. ide: PropTypes.any.isRequired,
  25. settings: PropTypes.any.isRequired
  26. }
  27. export const rootContext = createSharedContext(ContextRoot)