import React from 'react'; import { UploadCloud, CheckCircle2, AlertTriangle } from 'lucide-react'; export interface ActiveUpload { session_code: string; filename: string; client_id: number; chunk_index: number; received_chunks: number; total_chunks: number; progress_percent: number; status?: string; speed_mb?: number; } interface LiveTransferMeterProps { uploads: ActiveUpload[]; } export const LiveTransferMeter: React.FC = ({ uploads }) => { if (uploads.length === 0) { return (

Sin transferencias activas

Los agentes Windows transmitirán bloques de archivos automáticamente según sus trabajos programados.

); } return (

Transferencias en Vivo ({uploads.length})

Motor de Chunks Activo
{uploads.map((upload) => { const isComplete = upload.progress_percent >= 100; return (
{upload.filename} Cliente #{upload.client_id}
{upload.received_chunks} / {upload.total_chunks} Chunks ({upload.progress_percent}%) {isComplete && }
Sesión: {upload.session_code.substring(0, 18)}... {isComplete ? 'Ensamblando & Verificando SHA-256...' : 'Transmitiendo bloques de 4 MB'}
); })}
); };