From 6859fca06d8f9313a54151fa7c72d439caa1efb7 Mon Sep 17 00:00:00 2001
From: evenegas
Date: Wed, 30 Jul 2025 10:25:09 -0600
Subject: [PATCH] Se cambiaron estilos
---
src/app/alta/alta.tsx | 28 +++++++++++++++++++++-------
src/app/page.tsx | 2 +-
src/app/visualizacion/page.tsx | 27 +++++++++++++++------------
src/components/layout/footer.tsx | 2 +-
4 files changed, 38 insertions(+), 21 deletions(-)
diff --git a/src/app/alta/alta.tsx b/src/app/alta/alta.tsx
index 504fad4..127c3bb 100644
--- a/src/app/alta/alta.tsx
+++ b/src/app/alta/alta.tsx
@@ -4,20 +4,22 @@ import React, { useState } from "react";
const apiUrl = process.env.NEXT_PUBLIC_API_URL;
-
const tiposUsuarioEstudiante = [
"Diplomado", "Extra Largo", "Servicio Social", "Idiomas R (UNAM)",
"Idiomas Sabatino", "Reinscrito", "Posgrado", "Intercambio UNAM",
"Movilidad", "Ampliación de Conocimiento", "Licenciatura",
];
-const tiposUsuarioEspecial = ["Profesor", "Trabajadores"];
+const tiposUsuarioEspecial = ["Caso especial"];
+
+const tiposUsuarioTrabajador = ["Profesor", "Trabajadores"];
const FormularioCargaIndividual = () => {
const [tipoUsuario, setTipoUsuario] = useState("");
const [formData, setFormData] = useState({});
const [errores, setErrores] = useState([]);
const [mensaje, setMensaje] = useState("");
+ const [guardando, setGuardando] = useState(false); // 🔹 Estado para controlar el botón
const camposEstudiante = [
"num_cuenta", "carrera", "clave_carrera", "nombre",
@@ -25,6 +27,11 @@ const FormularioCargaIndividual = () => {
];
const camposEspecial = [
+ "nombre", "a_paterno", "a_materno", "contraseña",
+ "usuario",
+ ];
+
+ const camposTrabajador = [
"num_cuenta", "nombre", "a_paterno", "a_materno", "rfc",
"fecha_nacimiento", "genero", "carrera", "clave_carrera",
];
@@ -34,9 +41,11 @@ const FormularioCargaIndividual = () => {
? []
: tiposUsuarioEstudiante.includes(tipoUsuario)
? camposEstudiante
- : tiposUsuarioEspecial.includes(tipoUsuario)
- ? camposEspecial
- : [];
+ : tiposUsuarioTrabajador.includes(tipoUsuario)
+ ? camposTrabajador
+ : tiposUsuarioEspecial.includes(tipoUsuario)
+ ? camposEspecial
+ : [];
const handleChange = (
e: React.ChangeEvent
@@ -74,6 +83,8 @@ const FormularioCargaIndividual = () => {
return;
}
+ setGuardando(true); // 🔹 Empieza a guardar
+
try {
const token = localStorage.getItem("token");
const normalizado = { ...formData };
@@ -113,6 +124,8 @@ const FormularioCargaIndividual = () => {
} catch (err) {
console.error("Error en petición fetch:", err);
setMensaje("Ocurrió un error al guardar el usuario ❌");
+ } finally {
+ setGuardando(false); // 🔹 Termina de guardar
}
};
@@ -131,7 +144,7 @@ const FormularioCargaIndividual = () => {
required
>
Selecciona una opción
- {[...tiposUsuarioEstudiante, ...tiposUsuarioEspecial].map((tipo) => (
+ {[...tiposUsuarioEstudiante, ...tiposUsuarioTrabajador, ...tiposUsuarioEspecial].map((tipo) => (
{tipo}
@@ -183,8 +196,9 @@ const FormularioCargaIndividual = () => {
type="submit"
className="btn"
style={{ backgroundColor: "#003d79", color: "#fff" }}
+ disabled={guardando} // 🔹 Se desactiva mientras se guarda
>
- Guardar Usuario
+ {guardando ? "Guardando..." : "Guardar Usuario"}
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 61f8a43..04ac78e 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -59,11 +59,11 @@ const Home = () => {
const items: HeaderItem[] = user
? [
{ label: "Inicio", page: "landing" },
+ { label: "Consulta", page: "consulta" },
{ label: isCarga, page: "carga" },
...(user.tipo === "LOAD"
? [
{ label: "Carga individual", page: "carga individual" as PageKey },
- { label: "Consulta", page: "consulta" as PageKey },
]
: []),
{ label: "Cerrar sesión", onClick: handleLogout },
diff --git a/src/app/visualizacion/page.tsx b/src/app/visualizacion/page.tsx
index 98b5f26..0e601b2 100644
--- a/src/app/visualizacion/page.tsx
+++ b/src/app/visualizacion/page.tsx
@@ -125,18 +125,21 @@ export default function Consulta() {
{resultados.map((item, idx) => (
- {Object.values(item).map((val, i) => (
-
- {String(val)}
-
- ))}
+ {Object.values(item).map((val, i) => {
+ const cellKey = Object.keys(item)[i];
+ return (
+
+ {String(val)}
+
+ );
+ })}
))}
diff --git a/src/components/layout/footer.tsx b/src/components/layout/footer.tsx
index ba4ef81..59fc2c8 100644
--- a/src/components/layout/footer.tsx
+++ b/src/components/layout/footer.tsx
@@ -20,7 +20,7 @@ export default function Footer() {
Hecho en México. Todos los derechos reservados 2025.
- Esta página puede ser reproducida con fines no lucrativos, siempre y
+ Esta página no puede ser reproducida con fines lucrativos, siempre y
cuando no se mutile, se cite la fuente completa y su dirección
electrónica. De otra forma, requiere permiso previo por escrito de la
institución.