From 0cbb65acea1bab22adeb688c45fc9d8155f62aca Mon Sep 17 00:00:00 2001 From: VPS 4 Deploy Agent Date: Mon, 1 Jun 2026 01:39:39 +0200 Subject: [PATCH] =?UTF-8?q?fix(navigation):=20redireciona=20o=20bot=C3=A3o?= =?UTF-8?q?=20voltar=20e=20resetar=20da=20imagem=20para=20a=20pasta=20de?= =?UTF-8?q?=20RX=20do=20paciente=20no=20Dashboard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dental-client/src/pages/DashboardPage.jsx | 31 +++++++++++++++++++ .../src/pages/ImageDetailsPage.jsx | 4 +-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/dental-server/dental-client/src/pages/DashboardPage.jsx b/dental-server/dental-client/src/pages/DashboardPage.jsx index be92fc0..b2ea8f9 100644 --- a/dental-server/dental-client/src/pages/DashboardPage.jsx +++ b/dental-server/dental-client/src/pages/DashboardPage.jsx @@ -95,6 +95,37 @@ export default function DashboardPage() { }, 300); }, [searchParams]); + // ── URL query patient (abre a pasta de RX do paciente se informado) ── + useEffect(() => { + const patientName = searchParams.get('patient'); + if (!patientName) return; + + const loadQueryPatient = async () => { + try { + const { data } = await api.get(`/images/patients?search=${encodeURIComponent(patientName)}&limit=10`); + const found = data.find(p => p.patient_name === patientName) || data[0]; + if (found) { + setSelectedPatient(found); + setView('patient-images'); + loadPatientImages(found.patient_name); + } else { + const fallbackPatient = { patient_name: patientName, doctor: '', remark: '', image_count: 0 }; + setSelectedPatient(fallbackPatient); + setView('patient-images'); + loadPatientImages(patientName); + } + } catch { + const fallbackPatient = { patient_name: patientName, doctor: '', remark: '', image_count: 0 }; + setSelectedPatient(fallbackPatient); + setView('patient-images'); + loadPatientImages(patientName); + } + }; + + loadQueryPatient(); + navigate('/', { replace: true }); + }, [searchParams]); + // ── Socket.IO: nova imagem em tempo real ────────────────────────── useEffect(() => { let debounceTimer; diff --git a/dental-server/dental-client/src/pages/ImageDetailsPage.jsx b/dental-server/dental-client/src/pages/ImageDetailsPage.jsx index 5ca7e5e..54cb148 100644 --- a/dental-server/dental-client/src/pages/ImageDetailsPage.jsx +++ b/dental-server/dental-client/src/pages/ImageDetailsPage.jsx @@ -183,7 +183,7 @@ export default function ImageDetailsPage() { rotation: 0, flipH: false, flipV: false, remark: '' }); showToast('Imagem restaurada para o original!', 'success'); - navigate('/patients'); + navigate('/?patient=' + encodeURIComponent(patientName)); } catch { showToast('Erro ao restaurar a imagem.', 'error'); } finally { @@ -337,7 +337,7 @@ export default function ImageDetailsPage() { {/* Top Header para navegação / Voltar */}
-