import { EditorLoadingPane } from '@/features/ide-react/components/editor/editor-loading-pane' import { useEditorOpenDocContext } from '@/features/ide-react/context/editor-open-doc-context' import { useFileTreeOpenContext } from '@/features/ide-react/context/file-tree-open-context' import classNames from 'classnames' import SourceEditor from '@/features/source-editor/components/source-editor' import { Panel, PanelGroup } from 'react-resizable-panels' import { VerticalResizeHandle } from '@/features/ide-react/components/resize/vertical-resize-handle' import { FC, Suspense } from 'react' import { FullSizeLoadingSpinner } from '@/shared/components/loading-spinner' import SymbolPalettePane from '@/features/ide-react/components/editor/symbol-palette-pane' import { useEditorPropertiesContext } from '@/features/ide-react/context/editor-properties-context' import { isSplitTestEnabled } from '@/utils/splitTestUtils' import importOverleafModules from '../../../../../macros/import-overleaf-module.macro' const [pythonRunnerModule] = importOverleafModules('pythonRunner') as { import: { PythonEditorSplit: FC } }[] export const Editor = () => { const { opening, errorState, showSymbolPalette } = useEditorPropertiesContext() const { selectedEntityCount, openEntity } = useFileTreeOpenContext() const { currentDocumentId, currentDocument } = useEditorOpenDocContext() if (!currentDocumentId) { return null } const isLoading = Boolean( (!currentDocument || opening) && !errorState && currentDocumentId ) const isPythonDocument = openEntity?.type === 'doc' && openEntity.entity.name.toLowerCase().endsWith('.py') return (
{pythonRunnerModule && isPythonDocument && isSplitTestEnabled('overleaf-code') ? ( ) : ( )} {isLoading && } {showSymbolPalette && ( <> }> )}
) }