import React, { useState } from 'react'; import InputMask from "react-input-mask"; function PatientForm({ onSave, onCancel }) { const [formData, setFormData] = useState({ nome: '', nomeSocial: '', dataNascimento: '', genero: '', documento: '', numeroDocumento: '', cpf: '', profissao: '', nomeMae: '', profissaoMae: '', nomePai: '', profissaoPai: '', nomeResponsavel: '', cpfResponsavel: '', nomeConjuge: '', outroId: '', cep: '', cidade: '', estado: '', bairro: '', rua: '', numero: '', complemento: '', email: '', telefone1: '', telefone2: '', telefone3: '', observacoes: '' }); const handleChange = (e) => { const { name, value } = e.target; setFormData({ ...formData, [name]: value }); }; // Função para buscar endereço pelo CEP const handleCepBlur = async () => { const cep = formData.cep.replace(/\D/g, ''); if (cep.length === 8) { try { const response = await fetch(`https://viacep.com.br/ws/${cep}/json/`); const data = await response.json(); if (!data.erro) { setFormData((prev) => ({ ...prev, rua: data.logradouro || '', bairro: data.bairro || '', cidade: data.localidade || '', estado: data.uf || '' })); } else { alert('CEP não encontrado!'); } } catch (error) { alert('Erro ao buscar o CEP.'); } } }; const handleSubmit = () => { if (!formData.nome || !formData.cpf) { alert('Por favor, preencha Nome e CPF.'); return; } onSave( {nome: formData.nome, nomeSocial: formData.nomeSocial, dataNascimento: formData.dataNascimento, genero: formData.genero, documento: formData.documento, numeroDocumento: formData.numeroDocumento, cpf: formData.cpf, profissao: formData.profissao, nomeMae: formData.nomeMae, profissaoMae: formData.profissaoMae, nomePai: formData.nomePai, profissaoPai: formData.profissaoPai, nomeResponsavel: formData.nomeResponsavel, cpfResponsavel: formData.cpfResponsavel, nomeConjuge: formData.nomeConjuge, outroId: formData.outroId, endereco: { cep: formData.cep, cidade: formData.cidade, estado: formData.estado, bairro: formData.bairro, logradouro: formData.rua, numero: formData.numero, complemento: formData.complemento, }, contato: { email: formData.email, telefone1: formData.telefone1, telefone2: formData.telefone2, telefone3: formData.telefone3, }, observacoes: formData.observacoes, } ); }; return (

MedicoConnect

{/* ------------------ DADOS PESSOAIS ------------------ */}
Dados Pessoais
{/* ------------------ ENDEREÇO ------------------ */}
Endereço
{/* ------------------ CONTATO ------------------ */}
Contato
{/* ------------------ INFORMAÇÕES ADICIONAIS ------------------ */}
Informações Adicionais
{/* Botões */}
); } export default PatientForm;