From 7ea17feb2c97ffcb46805ad244a473957a7a4035 Mon Sep 17 00:00:00 2001 From: santiago Date: Thu, 30 Oct 2025 22:09:38 +0100 Subject: [PATCH] =?UTF-8?q?Se=20agregaron=20nuevas=20funcionalidades=20com?= =?UTF-8?q?o=20en=20el=20cambio=20de=20contrase=C3=B1a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../responsables/responsable/editar/page.tsx | 95 +++++++++++++++++++ src/components/administrador/carga-masiva.tsx | 8 +- .../administrador/editar-responsable.tsx | 65 +++++++------ .../administrador/infomracion-responsable.tsx | 2 +- ...ogramas.tsx => reasignacion-programas.tsx} | 25 ++--- 5 files changed, 150 insertions(+), 45 deletions(-) create mode 100644 src/app/administrador/responsables/responsable/editar/page.tsx rename src/components/administrador/{reasignar-programas.tsx => reasignacion-programas.tsx} (81%) diff --git a/src/app/administrador/responsables/responsable/editar/page.tsx b/src/app/administrador/responsables/responsable/editar/page.tsx new file mode 100644 index 0000000..86455b6 --- /dev/null +++ b/src/app/administrador/responsables/responsable/editar/page.tsx @@ -0,0 +1,95 @@ +'use client' +import { axiosInstance } from "@/api/config"; +import EditarResponsable from "@/components/administrador/editar-responsable"; +import ReasignacionProgramas from "@/components/administrador/reasignacion-programas"; +import BotonRegresar from "@/components/boton-regresar"; +import { useEffect, useState } from "react"; + +interface ResponsableResponse { + idUsuario: number; + nombre: string; + usuario: string; // correo +} + +export default function Editar() { + const token1 = typeof window !== 'undefined' ? localStorage.getItem('token') : null; + const [data, setData] = useState({ + idUsuario: 0, + nombre: "", + usuario: "", + }); + + const imprimirError = (message: unknown) => { + // eslint-disable-next-line no-alert + alert(`¡Hubo un error!\n\n${message}`); + }; + + const imprimirMensaje = (message: string) => { + // eslint-disable-next-line no-alert + alert(`¡Felicidades!\n\n${message}`); + }; + + const imprimirWarning = (message: string, onConfirm: () => void = () => {}, title = '¡Espera un minuto!', onCancel: () => void = () => {}) => { + // eslint-disable-next-line no-alert + const ok = confirm(`${title}\n\n${message}`); + if (ok) onConfirm(); else onCancel(); + }; + + const updateIsLoading = (booleanValue: boolean) => { + // Aquí podrías implementar alguna lógica para mostrar un indicador de carga + console.log('isLoading:', booleanValue); + } + + + // Peticion para obtener la info del usuario + const editarResponsable = async () => { + const idUsuario = localStorage.getItem("idResponsable") + + console.log("Id responsable: ", idUsuario) + + try { + updateIsLoading(true) + const res = await axiosInstance.get(`usuario/responsable?idUsuario=${idUsuario}`) + //imprimirMensaje(res.data.message) + setData(res.data) + } catch (error) { + const msg: unknown = error; + imprimirError(msg); + } + } + + useEffect(() => { + editarResponsable(); + }, []); + + return ( +
+ + + + + +{/* + +*/} +
+ ); +} \ No newline at end of file diff --git a/src/components/administrador/carga-masiva.tsx b/src/components/administrador/carga-masiva.tsx index 1fca9ac..ed28a27 100644 --- a/src/components/administrador/carga-masiva.tsx +++ b/src/components/administrador/carga-masiva.tsx @@ -9,8 +9,10 @@ import { FaUpload } from "react-icons/fa"; export default function CargaMasiva({datos}: {datos: CargaMasivaProps}) { const router = useRouter(); const [csv, setCsv] = useState(null) - //const link = `${process.env.api}/plantilla.csv`, - //const [link] = useState(`${process.env.NEXT_PUBLIC_API}/plantilla.csv`) + + const url = process.env.NEXT_PUBLIC_API_URL + const link = `${url}/plantilla.csv` + //const [link] = useState(`${url}/plantilla.csv`) const validarExt = (file: File | null) => { if (!file) return @@ -89,7 +91,7 @@ export default function CargaMasiva({datos}: {datos: CargaMasivaProps}) { diff --git a/src/components/administrador/reasignar-programas.tsx b/src/components/administrador/reasignacion-programas.tsx similarity index 81% rename from src/components/administrador/reasignar-programas.tsx rename to src/components/administrador/reasignacion-programas.tsx index 2e78c58..c95fc71 100644 --- a/src/components/administrador/reasignar-programas.tsx +++ b/src/components/administrador/reasignacion-programas.tsx @@ -6,7 +6,8 @@ import { isAxiosError } from 'axios'; import { useRouter } from "next/navigation"; interface Props { - admin: { token: { headers: { token: string } } }; + //admin: { token: { headers: { token: string } } }; + admin?: string; responsable: { idUsuario: number; usuario: string }; imprimirError: (err: unknown) => void; imprimirMensaje: (msg: string) => void; @@ -42,17 +43,17 @@ export default function ReasignacionProgramas({ }; try { - updateIsLoading(true); - const res = await axiosInstance.put(`/programa/reasignar_programas`, data, admin.token); - updateIsLoading(false); - imprimirMensaje(res.data.message); - router.push("/admin/responsables/responsable"); - } catch (err: unknown) { - updateIsLoading(false); - if (isAxiosError(err)) imprimirError(err.response?.data || err.message); - else if (err instanceof Error) imprimirError(err.message); - else imprimirError(err); - } + updateIsLoading(true); + const res = await axiosInstance.put(`/programa/reasignar_programas`, data); + updateIsLoading(false); + imprimirMensaje(res.data.message); + router.push("/admin/responsables/responsable"); + } catch (err: unknown) { + updateIsLoading(false); + if (isAxiosError(err)) imprimirError(err.response?.data || err.message); + else if (err instanceof Error) imprimirError(err.message); + else imprimirError(err); + } }; return (