"use client"; import { envConfig } from "@/app/lib/config"; import { useEffect, useState } from "react"; import axios from "axios"; import Cookies from "js-cookie"; import "./tableEquipos.css"; type AreaUbicacion = { id_area_ubicacion: number; area: string; }; type Equipo = { id_equipo: number; nombre_equipo: string; ubicacion: string; plataforma: { nombre: string }; areaUbicacion: {area:string}; ocupado: boolean; activo: { data: number[] } }; export default function TableEquipos() { const [machines, setMachines] = useState([]); const [areas, setAreas] = useState([]); const [selectedArea, setSelectedArea] = useState("Todo"); const [loading, setLoading] = useState(true); const token = Cookies.get("token"); const headers = { Authorization: `Bearer ${token}` }; useEffect(() => { const fetchEquipos = async () => { try { const response = await axios.get(`${envConfig.apiUrl}/equipo`, { headers }, ); setMachines(response.data); } catch (error: any) { console.error("ERROR API:", error.response?.data || error.message); } finally { setLoading(false); } }; fetchEquipos(); fetchAreas(); }, []); const fetchAreas = async () => { try { const res = await axios.get( `${process.env.NEXT_PUBLIC_API_URL}/area-ubicacion`, { headers }, ); setAreas(res.data); } catch (error) { console.error("Error cargando áreas:", error); } }; const toggleEquipo = async (id_equipo: number) => { try { await axios.patch( `${envConfig.apiUrl}/equipo/${id_equipo}/activo`, {}, { headers }, ); setMachines((prev) => prev.map((e) => e.id_equipo === id_equipo ? { ...e, activo: { data: [e.activo?.data?.[0] === 1 ? 0 : 1], }, } : e ) ); } catch (error: any) { console.error( "Error al cambiar estado del equipo", error.response?.data || error.message ); } }; if (loading) { return

Cargando equipos...

; } const filteredMachines = selectedArea === "Todo" ? machines : machines.filter( (machine) => machine.areaUbicacion.area === selectedArea, ); return (
{filteredMachines.map((eq) => { const isActivo = eq.activo?.data?.[0] === 1; return ( ); })}
Ubicación Nombre Plataforma Área Activo
{eq.ubicacion} {eq.nombre_equipo} {eq.plataforma?.nombre} {eq.areaUbicacion.area} {isActivo ? "Sí" : "No"} toggleEquipo(eq.id_equipo)} />
); } //IO