import { lazy, memo, Suspense, ElementType } from 'react'
import { FullSizeLoadingSpinner } from '../../../shared/components/loading-spinner'
import withErrorBoundary from '../../../infrastructure/error-boundary'
import { ErrorBoundaryFallback } from '../../../shared/components/error-boundary-fallback'
import importOverleafModules from '../../../../macros/import-overleaf-module.macro'
import GrammarlyAdvert from './grammarly-advert'
const writefullPromotion = importOverleafModules(
'writefullEditorPromotion'
) as {
import: { default: ElementType }
path: string
}[]
const CodeMirrorEditor = lazy(
() =>
import(/* webpackChunkName: "codemirror-editor" */ './codemirror-editor')
)
function SourceEditor() {
return (
}>
{writefullPromotion.map(({ import: { default: Component }, path }) => (
))}
)
}
export default withErrorBoundary(memo(SourceEditor), ErrorBoundaryFallback)