diff --git a/src/components/Editar.tsx b/src/components/Editar.tsx index f60572b..ddc9840 100644 --- a/src/components/Editar.tsx +++ b/src/components/Editar.tsx @@ -1,10 +1,12 @@ "use client"; + import { useSearchParams } from "next/navigation"; import "../app/styles/layout/agregarEquipo.scss"; import "./editar.css"; - import { useEffect, useState } from "react"; import axios from "axios"; +import Cookies from "js-cookie"; +import toast from "react-hot-toast"; export default function Editar() { const searchParams = useSearchParams(); @@ -25,42 +27,85 @@ export default function Editar() { responsable: "", }); - useEffect(() => { - const fetchEquipo = async () => { - try { - const response = await axios.get( - `${process.env.NEXT_PUBLIC_API_URL}/equipos/${equipoId}` - ); + const [tiposUso, setTiposUso] = useState([]); + const [marcas, setMarcas] = useState([]); + const [estados, setEstados] = useState([]); + const [adscripciones, setAdscripciones] = useState([]); + const [tiposEquipo, setTiposEquipo] = useState([]); + const [sistemasOperativos, setSistemasOperativos] = useState([]); + const [procesadores, setProcesadores] = useState([]); - setFormData(response.data); + const api_url = process.env.NEXT_PUBLIC_API_URL; + const mostrarCamposComputadora = formData.tipoEquipo !== "Impresora"; + + // 馃敼 Cargar datos de cat谩logo (listas) + useEffect(() => { + const fetchCatalogos = async () => { + const token = Cookies.get("token"); + const headers = { Authorization: `Bearer ${token}` }; + + try { + const [ + usosRes, + marcasRes, + estadosRes, + adscripcionesRes, + tiposEquipoRes, + sistemasOperativosRes, + procesadoresRes, + ] = await Promise.all([ + axios.get(`${api_url}/equipos/usos`, { headers }), + axios.get(`${api_url}/equipos/marcas`, { headers }), + axios.get(`${api_url}/equipos/estados`, { headers }), + axios.get(`${api_url}/equipos/adscripciones`, { headers }), + axios.get(`${api_url}/equipos/tipos-equipo`, { headers }), + axios.get(`${api_url}/equipos/sistemas-operativos`, { headers }), + axios.get(`${api_url}/equipos/procesadores`, { headers }), + ]); + + setTiposUso(usosRes.data); + setMarcas(marcasRes.data); + setEstados(estadosRes.data); + setAdscripciones(adscripcionesRes.data); + setTiposEquipo(tiposEquipoRes.data); + setSistemasOperativos(sistemasOperativosRes.data); + setProcesadores(procesadoresRes.data); } catch (error) { - console.error("Error al obtener el equipo:", error); - alert("No se pudo cargar la informaci贸n del equipo."); + console.error("Error cargando cat谩logos:", error); + toast.error("No se pudieron cargar los cat谩logos de datos"); } }; - if (equipoId) { - fetchEquipo(); - } - }, [equipoId]); + fetchCatalogos(); + }, []); - const mostrarCamposComputadora = formData.tipoEquipo !== "Impresora"; + // 馃敼 Cargar datos del equipo actual + useEffect(() => { + const fetchEquipo = async () => { + try { + const response = await axios.get(`${api_url}/equipos/${equipoId}`); + setFormData(response.data); + } catch (error) { + console.error("Error al obtener el equipo:", error); + toast.error("No se pudo cargar la informaci贸n del equipo."); + } + }; + + if (equipoId) fetchEquipo(); + }, [equipoId]); const handleGuardar = async () => { try { - await axios.patch( - `${process.env.NEXT_PUBLIC_API_URL}/equipos/update/${equipoId}`, - formData - ); - alert("Equipo actualizado correctamente"); + await axios.patch(`${api_url}/equipos/update/${equipoId}`, formData); + toast.success("Equipo actualizado correctamente"); } catch (error) { console.error("Error al guardar:", error); - alert("Hubo un error al guardar el equipo."); + toast.error("Hubo un error al guardar el equipo."); } }; const handleCancelar = () => { - alert("Acci贸n cancelada"); + toast("Acci贸n cancelada"); }; return ( @@ -68,8 +113,6 @@ export default function Editar() {

{equipoId ? `Editar Equipo (${equipoId})` : "Agregar Equipo"} - Inventario: - Fecha de censo:

@@ -86,6 +129,7 @@ export default function Editar() { } />
+
+
- + setFormData({ ...formData, tipoEquipo: e.target.value }) + } > - - - - + + {tiposEquipo.map((t) => ( + + ))}
+
-
- -
- -
{/* Columna 2 */}
+
+ + +
+ {mostrarCamposComputadora && ( <>
@@ -158,9 +224,11 @@ export default function Editar() { } > - - - + {procesadores.map((p) => ( + + ))}
@@ -176,10 +244,11 @@ export default function Editar() { } > - - - - + {sistemasOperativos.map((so) => ( + + ))}
@@ -194,17 +263,22 @@ export default function Editar() { } > - - - + {adscripciones.map((a) => ( + + ))}
- +