"use client"; import { useEffect, useState } from "react"; import axios from "axios"; import { envConfig } from "@/app/lib/config"; import "../../(private)/AsignacionEquipo/asignacion.css"; interface Equipo { id_equipo: number; id_plataforma: number; id_area_ubicacion: number; nombre_equipo: string; ubicacion: string; activo: boolean; ip: string; areaUbicacion: { area: string }; plataforma: { nombre: string }; } interface EnviarMensajeProps { titulo: string; } interface Mensaje { id_mensaje: number; mensaje: string; } const EnviarMensaje = ({ titulo }: EnviarMensajeProps) => { const [equipos, setEquipos] = useState([]); const [equipoSeleccionado, setEquipoSeleccionado] = useState(null); const [loadingEquipos, setLoadingEquipos] = useState(false); const [open, setOpen] = useState(false); const [mensaje, setMensaje] = useState(""); const [mensajes, setMensajes] = useState([]); const [loadingMensajes, setLoadingMensajes] = useState(false); const [customMsg, setCustomMsg] = useState(""); useEffect(() => { const fetchData = async () => { try { setLoadingMensajes(true); const [equiposRes, mensajesRes] = await Promise.all([ axios.get(`${envConfig.apiUrl}/equipo/busy`), axios.get(`${envConfig.apiUrl}/mensaje`) ]); setEquipos(equiposRes.data); setMensajes(mensajesRes.data); } catch (error) { console.error("Error cargando datos:", error); } finally { setLoadingMensajes(false); } }; fetchData(); }, []); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); const payload = { equipo: equipoSeleccionado, mensaje: customMsg || mensaje, }; }; return (
!loadingEquipos && setOpen(!open)} > {equipoSeleccionado ? ( {equipoSeleccionado.ubicacion}{" "} {equipoSeleccionado.nombre_equipo}{" "} {equipoSeleccionado.areaUbicacion.area} ) : ( {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} {eq.areaUbicacion.area}
))}
)}
setCustomMsg(e.target.value)} placeholder="Escribe tu mensaje..." />
); }; export default EnviarMensaje;