import { useTranslation } from 'react-i18next' import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table' import { Badge } from '@/components/ui/badge' import { Button } from '@/components/ui/button' import type { FileResult } from '@/types/api' interface ResultsTableProps { files: FileResult[] onViewResult?: (fileId: number) => void onDownloadPDF?: (fileId: number) => void } export default function ResultsTable({ files, onViewResult, onDownloadPDF }: ResultsTableProps) { const { t } = useTranslation() const getStatusBadge = (status: FileResult['status']) => { switch (status) { case 'completed': return {t('processing.completed')} case 'processing': return {t('processing.processing')} case 'failed': return {t('processing.failed')} default: return {t('processing.pending')} } } const formatTime = (seconds?: number) => { if (!seconds) return 'N/A' return `${seconds.toFixed(2)}s` } return (
{t('results.filename')} {t('results.status')} {t('results.processingTime')} {t('results.actions')} {files.length === 0 ? ( {t('results.noResults')} ) : ( files.map((file) => ( {file.filename} {getStatusBadge(file.status)} {formatTime(file.processing_time)}
{file.status === 'completed' && ( <> )} {file.status === 'failed' && file.error && ( {file.error} )}
)) )}
) }