ide-angular-provider.tsx 878 B

12345678910111213141516171819202122232425
  1. import { FC, useState } from 'react'
  2. import { AngularScopeValueStore } from '@/features/ide-react/scope-value-store/angular-scope-value-store'
  3. import { AngularScopeEventEmitter } from '@/features/ide-react/scope-event-emitter/angular-scope-event-emitter'
  4. import { Ide, IdeProvider } from '@/shared/context/ide-context'
  5. import { getMockIde } from '@/shared/context/mock/mock-ide'
  6. export const IdeAngularProvider: FC<{ ide?: Ide }> = ({ ide, children }) => {
  7. const [ideValue] = useState(() => ide || getMockIde())
  8. const [scopeStore] = useState(
  9. () => new AngularScopeValueStore(ideValue.$scope)
  10. )
  11. const [scopeEventEmitter] = useState(
  12. () => new AngularScopeEventEmitter(ideValue.$scope)
  13. )
  14. return (
  15. <IdeProvider
  16. ide={ideValue}
  17. scopeStore={scopeStore}
  18. scopeEventEmitter={scopeEventEmitter}
  19. >
  20. {children}
  21. </IdeProvider>
  22. )
  23. }