"use client"; import SearchDate from "../SearchDate/SearchDate"; import { useEffect, useState } from "react"; import "../../(private)/AsignacionEquipo/asignacion.css" import { envConfig } from "@/app/lib/config"; import axios from "axios"; interface equipos { hora_entrada: string; min_utilizados: number; hora_salida: string; cuenta_asociada: number; } function BitacoraEquipo({ date }: { date: string | null }) { const [equipo, setEquipo] = useState([]); const [open, setOpen] = useState(false); const [loadingEquipos, setLoadingEquipos] = useState(false); const [equipoSeleccionado, setEquipoSeleccionado] = useState(null); const [equipos, setEquipos] = useState([]); useEffect(() => { const fetchData = async () => { setLoadingEquipos(true); const response = await axios.get(`${envConfig.apiUrl}/equipo`); setEquipos(response.data); setLoadingEquipos(false); }; fetchData(); }, []); useEffect(() => { if (!equipoSeleccionado?.id_equipo) return; if (!date) return; axios.post(`${envConfig.apiUrl}/bitacora/equipos-por-equipo`, { id_equipo: equipoSeleccionado.id_equipo, fecha: date, }) .then(res => { setEquipo(res.data); }) .catch(err => { console.error(err); }); }, [equipoSeleccionado, date]); return ( <>
!loadingEquipos && setOpen(!open)} > {equipoSeleccionado ? ( {equipoSeleccionado.ubicacion}{" "} {equipoSeleccionado.nombre_equipo} ) : ( {loadingEquipos ? "Cargando equipos..." : "Seleccione un equipo"} )} {open ? "▲" : "▼"}
{open && (
{equipos.length === 0 && (
No hay equipos disponibles
)} {equipos.map((eq) => (
{ setEquipoSeleccionado(eq); setOpen(false); }} > {eq.ubicacion} {eq.nombre_equipo}
))}
)}
{equipo.length > 0 ? ( equipo.map((registro, index) => ( )) ) : ( )}
Hora Entrada Minutos utilizados Hora salida Cuenta asociada
{new Date(registro.hora_entrada).toLocaleString()} {registro.min_utilizados} {registro.hora_salida ? new Date(registro.hora_salida).toLocaleString() : "—"} {registro.cuenta_asociada}
Este equipo no tuvo asignaciones en esa fecha
); } export default BitacoraEquipo;