From 47a93394a9dde613cdb886ce14acdb44082fef63 Mon Sep 17 00:00:00 2001 From: "Cristian O." <84862634+Criser2013@users.noreply.github.com> Date: Thu, 2 Oct 2025 19:53:36 +0000 Subject: [PATCH 1/3] =?UTF-8?q?ADT-45=20Correcci=C3=B3n=20del=20error=20qu?= =?UTF-8?q?e=20no=20actualiza=20los=20campos=20de=20la=20pesta=C3=B1a=20"d?= =?UTF-8?q?atos=20recolectados"=20cuando=20se=20cambia=20el=20modo=20usuar?= =?UTF-8?q?io.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/diagnosticos/VerDiagnosticosPage.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/diagnosticos/VerDiagnosticosPage.jsx b/src/pages/diagnosticos/VerDiagnosticosPage.jsx index 38e6580..35b2ac1 100644 --- a/src/pages/diagnosticos/VerDiagnosticosPage.jsx +++ b/src/pages/diagnosticos/VerDiagnosticosPage.jsx @@ -68,7 +68,7 @@ export default function VerDiagnosticosPage() { { id: "sexo", label: t("txtCampoSexo"), componente: (x) => , ordenable: true }, { id: "diagnostico", label: t("txtCampoDiagModelo"), componente: (x) => , ordenable: true }, { id: "validado", label: t("txtCampoDiagMedico"), componente: (x) => , ordenable: true } - ]), [navegacion.idioma]); + ]), [camposVariables, navegacion.idioma]); const camposTabla = useMemo(() => { return (rol != CODIGO_ADMIN) ? camposFijos.concat([{ id: "accion", label: t("txtAccion"), componente: null, ordenable: false }]) : camposFijos; }, [rol, camposFijos, navegacion.idioma]); @@ -437,7 +437,7 @@ export default function VerDiagnosticosPage() { /** * Botón para validar diagnóstico * @param {JSON} diagnostico - Diagnóstico a validar. - * @returns JSX.Element + * @returns {JSX.Element} */ const BtnValidar = (diagnostico) => { const func = (x) => { From 751f8f623d7fdd6364631369db099226a2c57308 Mon Sep 17 00:00:00 2001 From: "Cristian O." <84862634+Criser2013@users.noreply.github.com> Date: Thu, 2 Oct 2025 21:19:32 +0000 Subject: [PATCH 2/3] =?UTF-8?q?Correcci=C3=B3n=20de=20error.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/diagnosticos/VerDiagnosticoPage.jsx | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/pages/diagnosticos/VerDiagnosticoPage.jsx b/src/pages/diagnosticos/VerDiagnosticoPage.jsx index c8a8b69..f95e985 100644 --- a/src/pages/diagnosticos/VerDiagnosticoPage.jsx +++ b/src/pages/diagnosticos/VerDiagnosticoPage.jsx @@ -30,6 +30,7 @@ import { peticionApi } from "../../services/Api"; import { ChipDiagnostico, ChipSexo, ChipValidado } from "../../components/tabs/Chips"; import ContLime from "../../components/diagnosticos/ContLime"; import { useTranslation } from "react-i18next"; +import { DatosIcono } from "../../components/icons/IconosSidebar"; /** * Página para ver los datos de un diagnóstico. @@ -201,6 +202,11 @@ export default function VerDiagnosticoPage() { if (datos.success && datos.data != []) { setDiagOriginal({ ...datos.data }); + if (rol != CODIGO_ADMIN && datos.data.medico != auth.authInfo.uid) { + volverPestanaAnterior(); + return; + } + if (rol == CODIGO_ADMIN) { await cargarDatosMedico(token, datos.data.medico); } else { @@ -209,7 +215,7 @@ export default function VerDiagnosticoPage() { preprocesarDiag(datos.data); } else if (DB != null && !datos.success) { - navigate("/diagnosticos", { replace: true }); + volverPestanaAnterior(); } }; @@ -316,12 +322,24 @@ export default function VerDiagnosticoPage() { }); }; + /** + * Vuelve a la pestaña anterior cuando el diagnóstico no existe o el usuario no tiene permisos para verlo. + * Se requiere el timeout porque sino hay condiciones de carrera con el sessionStorage y navigate. + */ + const volverPestanaAnterior = () => { + setTimeout(() => { + sessionStorage.removeItem("paciente"); + sessionStorage.setItem("descargando-drive", "false"); + navigate("/diagnosticos", { replace: true }); + }, 100); + }; + /** * Determina el tamaño del elemento dentro de la malla. * Si se visualiza desde un dispositivo movil en orientación horizontal y el menú o en escritorio, * se ajusta el contenido a 2 columnas, en caso contrario se deja en 1 columna. * @param {Int} indice - * @returns Int + * @returns {Int} */ const detVisualizacion = (indice) => { const { orientacion, mostrarMenu, dispositivoMovil, ancho } = navegacion; @@ -525,7 +543,7 @@ export default function VerDiagnosticoPage() { urlPredet="/diagnosticos" titulo={t("titDiagnostico")} pestanas={listadoPestanas} - tooltip={t("txtVolverAtrasDiagnosticos")}/> + tooltip={t("txtVolverAtrasDiagnosticos")} /> Date: Thu, 2 Oct 2025 21:29:10 +0000 Subject: [PATCH 3/3] =?UTF-8?q?Correcci=C3=B3n=20visual.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/contexts/NavegacionContext.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/contexts/NavegacionContext.jsx b/src/contexts/NavegacionContext.jsx index dbec29e..324d958 100644 --- a/src/contexts/NavegacionContext.jsx +++ b/src/contexts/NavegacionContext.jsx @@ -37,7 +37,7 @@ export function NavegacionProvider({ children }) { const [recargarPagina, setRecargarPagina] = useState(false); const { mode, setMode } = useColorScheme(); const { i18n } = useTranslation(); - const idioma = useMemo(() => i18n.language, [i18n.language]); + const idioma = useMemo(() => i18n.language.split("-")[0], [i18n.language]); const tema = useMemo(() => { if (mode == "system" || mode == undefined) { if (window.matchMedia("(prefers-color-scheme: light)").matches) {