import React, { useState, useEffect } from 'react'; import { Card, Row, Col, Button, Table, Alert } from 'react-bootstrap'; import NewMaintenanceForm from './NewMaintenanceForm'; import axios from 'axios'; const JorgeDashboard = () => { const [maintenanceHistory, setMaintenanceHistory] = useState([]); const [pendingAlerts, setPendingAlerts] = useState([]); const [showNewMaintenanceForm, setShowNewMaintenanceForm] = useState(false); const [vehicles, setVehicles] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { fetchData(); }, []); const fetchData = async () => { try { setLoading(true); const [historyRes, alertsRes, vehiclesRes] = await Promise.all([ axios.get('/api/maintenance/history'), axios.get('/api/maintenance/alerts'), axios.get('/api/maintenance/vehicles') ]); setMaintenanceHistory(historyRes.data); setPendingAlerts(alertsRes.data); setVehicles(vehiclesRes.data); setError(null); } catch (err) { setError('Error al cargar los datos. Por favor, intente nuevamente.'); console.error('Error fetching data:', err); } finally { setLoading(false); } }; const handleNewMaintenance = async (formData) => { try { const response = await axios.post('/api/maintenance', formData); setMaintenanceHistory(prev => [response.data.maintenance, ...prev]); setShowNewMaintenanceForm(false); } catch (err) { setError('Error al guardar el mantenimiento. Por favor, intente nuevamente.'); console.error('Error saving maintenance:', err); } }; if (loading) { return
Cargando...
; } if (error) { return {error}; } return (

Panel de Control - Mantenimiento de VehĂ­culos

{/* Alertas Pendientes */}

Alertas de Mantenimiento Pendiente

{pendingAlerts.length === 0 ? ( No hay alertas pendientes ) : ( pendingAlerts.map(alert => ( {alert.vehicle.plate} - {alert.maintenance_type} pendiente para: {new Date(alert.next_maintenance_date).toLocaleDateString()} )) )}
{/* Historial de Mantenimientos */}

Historial de Mantenimientos

{maintenanceHistory.map(record => ( ))}
VehĂ­culo Fecha Tipo Estado Acciones
{record.vehicle.plate} {new Date(record.date).toLocaleDateString()} {record.maintenance_type} {record.status}
{/* Modal de Nuevo Mantenimiento */} setShowNewMaintenanceForm(false)} onSubmit={handleNewMaintenance} vehicles={vehicles} />
); }; export default JorgeDashboard;