From a57cf27a6ab04ee319dc0b1f6d5f30da90e14ca0 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Tue, 28 Apr 2026 17:11:31 -0300 Subject: [PATCH] Fix TDZ no autosave do cadastro externo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O watch de scheduleProgressSave referenciava form.* antes da declaração do reactive form, violando TDZ e quebrando a página inteira no load. Move o watch pra depois da `const form = reactive(resetForm())`. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/views/pages/public/CadastroPacienteExterno.vue | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/views/pages/public/CadastroPacienteExterno.vue b/src/views/pages/public/CadastroPacienteExterno.vue index 219c4d5..0793631 100644 --- a/src/views/pages/public/CadastroPacienteExterno.vue +++ b/src/views/pages/public/CadastroPacienteExterno.vue @@ -207,10 +207,8 @@ async function savePartialProgress() { } catch { /* silencioso — autosave não é crítico */ } } -watch( - () => [form.nome_completo, form.telefone, form.email_principal, form.onde_nos_conheceu], - scheduleProgressSave -); +// O watch que dispara `scheduleProgressSave` foi movido pra depois da +// declaração de `form` (linha ~319) — referência aqui violava TDZ. // ---------------------------------------------------------------- // Helpers @@ -319,6 +317,12 @@ function resetForm() { const form = reactive(resetForm()); const consent = ref(false); +// Autosave de progresso: precisa de `form` declarado antes (TDZ). +watch( + () => [form.nome_completo, form.telefone, form.email_principal, form.onde_nos_conheceu], + scheduleProgressSave +); + const errors = reactive({ nome_completo: '', email_principal: '', email_alternativo: '', telefone: '', consentimento: '' });