import { useFileManager, type FileManagerProps } from './useFileManager' import { ImageLightbox } from './FileManagerImageLightbox' import { AssignModal } from './FileManagerAssignModal' import { PdfPreviewModal } from './FileManagerPdfPreviewModal' import { MarkdownPreviewModal } from './FileManagerMarkdownPreviewModal' import { isMarkdown } from './FileManager.helpers' import { FileManagerToolbar } from './FileManagerToolbar' import { TrashView } from './FileManagerTrashView' import { FilesView } from './FileManagerFilesView' import DocSyncPanel from './docsync/DocSyncPanel' export default function FileManager(props: FileManagerProps) { const S = useFileManager(props) const { lightboxIndex, setLightboxIndex, mediaFiles, assignFileId, previewFile, handlePaste, showTrash } = S return (
{/* Lightbox */} {lightboxIndex !== null && setLightboxIndex(null)} />} {/* Assign modal */} {assignFileId && } {/* Document preview modal (markdown is rendered inline; everything else PDF/object) */} {previewFile && (isMarkdown(previewFile.mime_type, previewFile.original_name) ? : )} {/* Document sync opens as its own dialog: it is configuration for the documents on this screen, so it belongs here rather than in settings, but it is a task with a beginning and an end and does not belong inside the list it configures. */} {S.showDocSync && ( S.setShowDocSync(false)} /> )} {/* Toolbar */} {showTrash ? : }
) }