import React, { useState } from 'react'; import { Box, Text, Loader, Stack, Center, Flex } from '@mantine/core'; import FilePreview from '../../shared/FilePreview'; import FileMetadata from './FileMetadata'; import NavigationControls from './NavigationControls'; export interface ReviewFile { file: File; thumbnail?: string; } export interface ReviewPanelProps { files: ReviewFile[]; isGeneratingThumbnails?: boolean; onFileClick?: (file: File) => void; title?: string; emptyMessage?: string; loadingMessage?: string; } const ReviewPanel = ({ files, isGeneratingThumbnails = false, onFileClick, title, emptyMessage = "No files to preview", loadingMessage = "Generating previews..." }: ReviewPanelProps) => { const [currentIndex, setCurrentIndex] = useState(0); const handlePrevious = () => { setCurrentIndex((prev) => (prev === 0 ? files.length - 1 : prev - 1)); }; const handleNext = () => { setCurrentIndex((prev) => (prev === files.length - 1 ? 0 : prev + 1)); }; if (files.length === 0 && !isGeneratingThumbnails) { return ( {emptyMessage} ); } if (isGeneratingThumbnails) { return (
{loadingMessage}
); } const currentFile = files[currentIndex]; if (!currentFile) return null; return ( {/* File name at the top */} {currentFile.file.name} file && onFileClick(file as File) : undefined} /> {/* Navigation controls */} ); }; export default ReviewPanel;