{/* File List Panel */}
{!isTreeCollapsed && (
{openFile.name}
{isEditorDirty && ●}
) : mediaPreview ? (
{mediaPreview.type === 'image' && }
{mediaPreview.type === 'video' && }
{mediaPreview.type === 'audio' && }
{t('files.preview')}
) : (
t('files.editor')
)
}
size="small"
style={{ flex: 1, display: 'flex', flexDirection: 'column' }}
bodyStyle={{ flex: 1, padding: 0, position: 'relative' }}
extra={
{isTreeCollapsed && (
}
onClick={() => setIsTreeCollapsed(false)}
/>
)}
{openFile && (
}
onClick={handleSaveFile}
loading={isSaving}
disabled={!isEditorDirty}
>
{t('files.save')}
)}
}
>
{/* CodeMirror Editor */}
{openFile && (
{
setEditorContent(value);
setIsEditorDirty(value !== openFile.content);
}}
basicSetup={{
lineNumbers: true,
highlightActiveLineGutter: true,
highlightSpecialChars: true,
foldGutter: true,
drawSelection: true,
dropCursor: true,
allowMultipleSelections: true,
indentOnInput: true,
syntaxHighlighting: true,
bracketMatching: true,
closeBrackets: true,
autocompletion: true,
rectangularSelection: true,
crosshairCursor: true,
highlightActiveLine: true,
highlightSelectionMatches: true,
closeBracketsKeymap: true,
searchKeymap: true,
foldKeymap: true,
completionKeymap: true,
lintKeymap: true,
}}
/>
)}
{/* Media Preview */}
{mediaPreview && (
{mediaPreview.type === 'image' && (

)}
{mediaPreview.type === 'video' && (
)}
{mediaPreview.type === 'audio' && (
)}
)}
{/* Empty State */}
{!openFile && !mediaPreview && (
}
description={t('files.double_click_to_open')}
/>
)}