Se cambiaron estilos
This commit is contained in:
+21
-7
@@ -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<any>({});
|
||||
const [errores, setErrores] = useState<string[]>([]);
|
||||
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<HTMLInputElement | HTMLSelectElement>
|
||||
@@ -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
|
||||
>
|
||||
<option value="">Selecciona una opción</option>
|
||||
{[...tiposUsuarioEstudiante, ...tiposUsuarioEspecial].map((tipo) => (
|
||||
{[...tiposUsuarioEstudiante, ...tiposUsuarioTrabajador, ...tiposUsuarioEspecial].map((tipo) => (
|
||||
<option key={tipo} value={tipo}>
|
||||
{tipo}
|
||||
</option>
|
||||
@@ -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"}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
+1
-1
@@ -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 },
|
||||
|
||||
@@ -125,18 +125,21 @@ export default function Consulta() {
|
||||
<tbody>
|
||||
{resultados.map((item, idx) => (
|
||||
<tr key={idx}>
|
||||
{Object.values(item).map((val, i) => (
|
||||
<td
|
||||
key={i}
|
||||
style={{
|
||||
padding: "0.75rem",
|
||||
borderBottom: "1px solid #eee",
|
||||
textAlign: "left",
|
||||
}}
|
||||
>
|
||||
{String(val)}
|
||||
</td>
|
||||
))}
|
||||
{Object.values(item).map((val, i) => {
|
||||
const cellKey = Object.keys(item)[i];
|
||||
return (
|
||||
<td
|
||||
key={i}
|
||||
style={{
|
||||
padding: "0.75rem",
|
||||
borderBottom: "1px solid #eee",
|
||||
textAlign: cellKey === "fecha_activacion" ? "center" : "left",
|
||||
}}
|
||||
>
|
||||
{String(val)}
|
||||
</td>
|
||||
);
|
||||
})}
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
|
||||
@@ -20,7 +20,7 @@ export default function Footer() {
|
||||
Hecho en México. Todos los derechos reservados 2025.
|
||||
</p>
|
||||
<p className="mb-0">
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user