source-editor.tsx 656 B

123456789101112131415161718192021
  1. import { lazy, memo, Suspense } from 'react'
  2. import { FullSizeLoadingSpinner } from '../../../shared/components/loading-spinner'
  3. import withErrorBoundary from '../../../infrastructure/error-boundary'
  4. import { ErrorBoundaryFallback } from '../../../shared/components/error-boundary-fallback'
  5. const CodeMirrorEditor = lazy(
  6. () =>
  7. import(/* webpackChunkName: "codemirror-editor" */ './codemirror-editor')
  8. )
  9. function SourceEditor() {
  10. return (
  11. <Suspense fallback={<FullSizeLoadingSpinner delay={500} />}>
  12. <CodeMirrorEditor />
  13. </Suspense>
  14. )
  15. }
  16. export default withErrorBoundary(memo(SourceEditor), () => (
  17. <ErrorBoundaryFallback />
  18. ))