From 389aa8adfbb70646cd0e0f44efd71d04a5a2cf67 Mon Sep 17 00:00:00 2001 From: M-Gabrielly Date: Thu, 2 Oct 2025 02:14:39 -0300 Subject: [PATCH] fix(doctor-form): load existing doctor data on edit mode - Fix doctorId type to accept string | number | null to handle UUID values - Remove Number() conversion that was causing NaN errors on edit - Add debug console logs to track data loading process - Improve error handling in useEffect for doctor and attachments loading - Ensure form fields are properly populated with doctor data when editing --- .../app/(main-routes)/doutores/page.tsx | 2 +- .../forms/doctor-registration-form.tsx | 87 ++++++++++--------- 2 files changed, 48 insertions(+), 41 deletions(-) diff --git a/susconecta/app/(main-routes)/doutores/page.tsx b/susconecta/app/(main-routes)/doutores/page.tsx index 81cf008..8fae66c 100644 --- a/susconecta/app/(main-routes)/doutores/page.tsx +++ b/susconecta/app/(main-routes)/doutores/page.tsx @@ -298,7 +298,7 @@ export default function DoutoresPage() { setShowForm(false)} /> diff --git a/susconecta/components/forms/doctor-registration-form.tsx b/susconecta/components/forms/doctor-registration-form.tsx index ecf95c2..acdcf1c 100644 --- a/susconecta/components/forms/doctor-registration-form.tsx +++ b/susconecta/components/forms/doctor-registration-form.tsx @@ -51,7 +51,7 @@ type Mode = "create" | "edit"; export interface DoctorRegistrationFormProps { open?: boolean; onOpenChange?: (open: boolean) => void; - doctorId?: number | null; + doctorId?: string | number | null; inline?: boolean; mode?: Mode; onSaved?: (medico: Medico) => void; @@ -155,46 +155,53 @@ export function DoctorRegistrationForm({ let alive = true; async function load() { if (mode === "edit" && doctorId) { - const medico = await buscarMedicoPorId(String(doctorId)); - if (!alive) return; - setForm({ - photo: null, - full_name: medico.full_name ?? "", - nome_social: medico.nome_social ?? "", - crm: medico.crm ?? "", - estado_crm: medico.estado_crm ?? "", - rqe: medico.rqe ?? "", - formacao_academica: medico.formacao_academica ?? [], - curriculo: null, - especialidade: medico.especialidade ?? "", - cpf: medico.cpf ?? "", - rg: medico.rg ?? "", - sexo: medico.sexo ?? "", - data_nascimento: medico.data_nascimento ?? "", - email: medico.email ?? "", - telefone: medico.telefone ?? "", - celular: medico.celular ?? "", - contato_emergencia: medico.contato_emergencia ?? "", - cep: "", - logradouro: "", - numero: "", - complemento: "", - bairro: "", - cidade: "", - estado: "", - observacoes: medico.observacoes ?? "", - anexos: [], - tipo_vinculo: medico.tipo_vinculo ?? "", - dados_bancarios: medico.dados_bancarios ?? { banco: "", agencia: "", conta: "", tipo_conta: "" }, - agenda_horario: medico.agenda_horario ?? "", - valor_consulta: medico.valor_consulta ? String(medico.valor_consulta) : "", - }); - - try { - const list = await listarAnexosMedico(doctorId); - setServerAnexos(list ?? []); - } catch {} + console.log("[DoctorForm] Carregando médico ID:", doctorId); + const medico = await buscarMedicoPorId(String(doctorId)); + console.log("[DoctorForm] Dados recebidos:", medico); + if (!alive) return; + setForm({ + photo: null, + full_name: medico.full_name ?? "", + nome_social: medico.nome_social ?? "", + crm: medico.crm ?? "", + estado_crm: medico.estado_crm ?? "", + rqe: medico.rqe ?? "", + formacao_academica: medico.formacao_academica ?? [], + curriculo: null, + especialidade: medico.especialidade ?? "", + cpf: medico.cpf ?? "", + rg: medico.rg ?? "", + sexo: medico.sexo ?? "", + data_nascimento: medico.data_nascimento ?? "", + email: medico.email ?? "", + telefone: medico.telefone ?? "", + celular: medico.celular ?? "", + contato_emergencia: medico.contato_emergencia ?? "", + cep: "", + logradouro: "", + numero: "", + complemento: "", + bairro: "", + cidade: "", + estado: "", + observacoes: medico.observacoes ?? "", + anexos: [], + tipo_vinculo: medico.tipo_vinculo ?? "", + dados_bancarios: medico.dados_bancarios ?? { banco: "", agencia: "", conta: "", tipo_conta: "" }, + agenda_horario: medico.agenda_horario ?? "", + valor_consulta: medico.valor_consulta ? String(medico.valor_consulta) : "", + }); + + try { + const list = await listarAnexosMedico(String(doctorId)); + setServerAnexos(list ?? []); + } catch (err) { + console.error("[DoctorForm] Erro ao carregar anexos:", err); + } + } catch (err) { + console.error("[DoctorForm] Erro ao carregar médico:", err); + } } } load();