75 lines
1.9 KiB
TypeScript
75 lines
1.9 KiB
TypeScript
"use client";
|
|
|
|
import { envConfig } from "@/app/lib/config";
|
|
import { useEffect, useState } from "react";
|
|
|
|
import "./tableEquipos.css";
|
|
export default function TableEquipos() {
|
|
const [equipos, setEquipos] = useState<any[]>([]);
|
|
const [loading, setLoading] = useState(true);
|
|
|
|
useEffect(() => {
|
|
fetch(`${envConfig.apiUrl}/equipo`)
|
|
.then((res) => res.json())
|
|
.then((data) => {
|
|
console.log("EQUIPOS:", data);
|
|
setEquipos(data);
|
|
setLoading(false);
|
|
})
|
|
.catch((err) => {
|
|
console.error("ERROR API:", err);
|
|
setLoading(false);
|
|
});
|
|
}, []);
|
|
|
|
if (loading) {
|
|
return <p>Cargando equipos...</p>;
|
|
}
|
|
|
|
return (
|
|
<div
|
|
style={{
|
|
overflow: "auto",
|
|
height: "430px",
|
|
scrollbarColor: "#2563eb white",
|
|
}}
|
|
>
|
|
<table style={{ width: "100%", borderCollapse: "collapse" }}>
|
|
<thead>
|
|
<tr>
|
|
<th>Ubicación</th>
|
|
<th>Nombre</th>
|
|
<th>Plataforma</th>
|
|
<th>Área</th>
|
|
<th>Activo</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{equipos.map((eq) => {
|
|
const isActivo = eq.activo?.data?.[0] === 1;
|
|
|
|
return (
|
|
<tr key={eq.id_equipo}>
|
|
<td>{eq.ubicacion}</td>
|
|
<td>{eq.nombre_equipo}</td>
|
|
<td className={eq.plataforma?.nombre}>
|
|
{eq.plataforma?.nombre}
|
|
</td>
|
|
<td>{eq.areaUbicacion?.nombre || eq.id_area_ubicacion}</td>
|
|
|
|
<td
|
|
style={{ display: "flex", alignItems: "center", gap: "5px" }}
|
|
>
|
|
<span>{isActivo ? "Sí" : "No"}</span>
|
|
|
|
<input type="checkbox" checked={isActivo} readOnly style={{height:"2.5rem"}}/>
|
|
</td>
|
|
</tr>
|
|
);
|
|
})}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
);
|
|
}
|