diff --git a/src/pages/Expedientes.jsx b/src/pages/Expedientes.jsx index 38626c1..363054c 100644 --- a/src/pages/Expedientes.jsx +++ b/src/pages/Expedientes.jsx @@ -638,6 +638,7 @@ const downloadExpediente = async (pedimentoId, pedimentoName, setSuccess, showMe showMessage(`Error durante la subida: ${error.message}`, 'error'); } finally { setIsUploading(false); + fetchPendingBulkUploads(); } }; @@ -671,6 +672,160 @@ const downloadExpediente = async (pedimentoId, pedimentoName, setSuccess, showMe // El layout principal y la tabla siempre se renderizan, loader/error/empty solo dentro del área de la tabla + // En tu componente Reports, agrega este estado y efecto + const [pendingBulkUploads, setPendingBulkUploads] = useState([]); + + // Función para obtener tareas pendientes de bulk upload + const fetchPendingBulkUploads = async () => { + try { + const url = `${API_URL}/customs/pedimentos/bulk-upload-status/`; + const res = await fetchWithAuth(url); + if (!res.ok) throw new Error('Error al obtener tareas pendientes'); + const data = await res.json(); + setPendingBulkUploads(data.pending_tasks || []); + + // Si hay tareas en progreso, mostrar notificación + const processingTasks = data.pending_tasks?.filter(t => t.status === 'processing') || []; + if (processingTasks.length > 0) { + console.log(`📊 ${processingTasks.length} tarea(s) de carga en progreso`); + } + } catch (err) { + console.error('Error fetching pending bulk uploads:', err); + setPendingBulkUploads([]); + } + }; + + // Efecto para ejecutar cada 30 segundos + useEffect(() => { + // Ejecutar inmediatamente al cargar + fetchPendingBulkUploads(); + + // Configurar intervalo cada 30 segundos + const intervalId = setInterval(fetchPendingBulkUploads, 30000); + + // Limpiar intervalo al desmontar + return () => clearInterval(intervalId); + }, []); + + // Función para renderizar notificación de tareas pendientes + const renderBulkUploadNotifications = () => { + if (!pendingBulkUploads || pendingBulkUploads.length === 0) { + return null; + } + + const processingTasks = pendingBulkUploads.filter(t => t.status === 'processing'); + const pendingTasks = pendingBulkUploads.filter(t => t.status === 'pending'); + // const failedTasks = pendingBulkUploads.filter(t => t.status === 'failed'); + + return ( +
+ {pendingBulkUploads.length} tarea(s) activa(s) +
+