// app/manager/home/[id]/editar/page.tsx "use client"; import React, { useEffect, useState } from "react"; import { useParams, useRouter } from "next/navigation"; import { pacientesApi } from "@/services/pacientesApi"; interface Patient { id?: number | string; full_name?: string; [k: string]: any; } export default function ManagerHomeEditPage() { const params = useParams(); const id = params?.id; const router = useRouter(); const [patient, setPatient] = useState(null); const [isLoading, setIsLoading] = useState(true); const [isSaving, setIsSaving] = useState(false); const [error, setError] = useState(null); useEffect(() => { let mounted = true; const load = async () => { setIsLoading(true); setError(null); try { if (!id) throw new Error("ID ausente"); const data = await pacientesApi.getById(String(id)); if (mounted) setPatient(data ?? null); } catch (err: any) { console.error("Erro ao buscar paciente:", err); if (mounted) setError(err?.message ?? "Erro ao buscar paciente"); } finally { if (mounted) setIsLoading(false); } }; load(); return () => { mounted = false; }; }, [id]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!id || !patient) return; setIsSaving(true); setError(null); try { await pacientesApi.update(String(id), patient); router.push("/manager/home"); } catch (err: any) { console.error("Erro ao salvar paciente:", err); setError(err?.message ?? "Erro ao salvar"); } finally { setIsSaving(false); } }; if (isLoading) return
Carregando...
; if (error) return
Erro: {error}
; if (!patient) return
Paciente não encontrado.
; return (

Editar Paciente

setPatient({ ...patient, full_name: e.target.value })} required className="w-full" />
); }