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
VehĂculo | Fecha | Tipo | Estado | Acciones |
---|---|---|---|---|
{record.vehicle.plate} | {new Date(record.date).toLocaleDateString()} | {record.maintenance_type} | {record.status} |