import { Dialog } from "@headlessui/react"; import { useForm } from "react-hook-form"; import { ProcessoAdministrativo, StatusProcessoAdministrativo } from "../../types/processoAdministrativo"; import { useProcessosAdministrativos } from "../../hooks/useProcessosAdministrativos"; import { useClientes } from "../../hooks/useClientes"; import { FormInput, FormSelect } from "../forms"; import { TipoParte } from "../../types/entities"; import { useState, useEffect } from "react"; interface ProcessoAdminModalProps { isOpen: boolean; onClose: () => void; processo?: ProcessoAdministrativo; onSuccess?: () => void; } export function ProcessoAdminModal({ isOpen, onClose, processo, onSuccess }: ProcessoAdminModalProps) { const { register, handleSubmit, setValue, reset } = useForm(); const { createProcesso, updateProcesso } = useProcessosAdministrativos(); const { clientes } = useClientes(); const [clienteSearch, setClienteSearch] = useState(""); // Reset form quando modal abrir/fechar useEffect(() => { if (isOpen && processo) { Object.keys(processo).forEach((key) => { if (key !== "id" && key !== "dataCriacao" && key !== "dataAtualizacao") { setValue(key, processo[key]); } }); } else { reset({ numero: "", descricao: "", orgao: "", clienteId: "", tipoParteCliente: TipoParte.AUTOR, valorPretensao: "", status: StatusProcessoAdministrativo.INICIAL, observacoes: "", }); } }, [isOpen, processo, setValue, reset]); const onSubmit = async (data: any) => { try { console.log("Dados do formulário:", data); // Adicionar log const processData = { ...data, valorPretensao: data.valorPretensao ? Number(data.valorPretensao) : null, }; if (processo) { await updateProcesso.mutateAsync({ id: processo.id, data: processData }); } else { await createProcesso.mutateAsync(processData); } onSuccess?.(); onClose(); } catch (error) { console.error("Erro detalhado ao salvar processo:", error); // Melhorar log de erro } }; return ( ); }