"use client"; import { useEffect, useState } from "react"; import styles from "./Page.module.css"; import axios from "axios"; import Cookies from "js-cookie"; type AreaUbicacion = { id_area_ubicacion: number; area: string; }; type Equipo = { id_equipo: number; nombre_equipo: string; ubicacion: string; plataforma: string; area: string; ocupado: boolean; }; export default function MachineTableActive() { 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}` }; const fetchMachines = async () => { try { const res = await axios.get( `${process.env.NEXT_PUBLIC_API_URL}/equipo/active`, { headers }, ); setMachines(res.data); } catch (error) { console.error("Error cargando equipos:", error); } finally { setLoading(false); } }; 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); } }; useEffect(() => { fetchMachines(); fetchAreas(); }, []); const filteredMachines = selectedArea === "Todo" ? machines : machines.filter( (machine) => machine.area === selectedArea, ); if (loading) return

Cargando equipos...

; return (
{filteredMachines.map((machine) => ( ))}
Ubicación Nombre Equipo Plataforma Área Disponible
{machine.ubicacion} {machine.nombre_equipo} {machine.plataforma} {machine.area} {!machine.ocupado ? "Sí" : "No"}
); } //IO