import InputMask from "react-input-mask"; import "./style/formagendamentos.css"; import { useState, useEffect } from "react"; const FormNovaConsulta = ({ onCancel, patientID }) => { const [selectedFile, setSelectedFile] = useState(null); const [anexos, setAnexos] = useState([]); const [loadingAnexos, setLoadingAnexos] = useState(false); const [paciente, setPaciente] = useState({}) const [acessibilidade, setAcessibilidade] = useState({cadeirante:false,idoso:false,gravida:false,bebe:false, autista:false }) useEffect(() => { if (!patientID) return; const fetchAnexos = async () => { setLoadingAnexos(true); try { const res = await fetch(`https://mock.apidog.com/m1/1053378-0-default/pacientes/${patientID}/anexos`); const data = await res.json(); setAnexos(data.data || []); } catch (err) { console.error("Erro ao buscar anexos:", err); } finally { setLoadingAnexos(false); } }; fetchAnexos(); }, [patientID]); const handleUpload = async () => { if (!selectedFile) return; const formData = new FormData(); formData.append("file", selectedFile); try { const res = await fetch(`https://mock.apidog.com/m1/1053378-0-default/pacientes/${patientID}/anexos`, { method: "POST", body: formData }); if (res.ok) { const novoAnexo = await res.json(); setAnexos(prev => [...prev, novoAnexo]); setSelectedFile(null); } else { console.error("Erro ao enviar anexo"); } } catch (err) { console.error("Erro ao enviar anexo:", err); } }; const handleclickAcessibilidade = (id) => { let resultado = acessibilidade[id] if(resultado === false){ setAcessibilidade({...acessibilidade, [id]:true}); console.log('mudou')} else if(resultado === true){ setAcessibilidade({...acessibilidade, [id]:false})} console.log(id) } const FormatCPF = (valor) => { console.log(valor) const digits = String(valor).replace(/\D/g, '').slice(0, 11); BuscarPacienteExistentePeloCPF(valor) return digits .replace(/(\d{3})(\d)/, '$1.$2') .replace(/(\d{3})(\d)/, '$1.$2') .replace(/(\d{3})(\d{1,2})$/, '$1-$2'); } const BuscarCPFnoBancodeDados = async (cpf) => { var myHeaders = new Headers(); myHeaders.append("Authorization", "Bearer "); myHeaders.append("Content-Type", "application/json"); var raw = JSON.stringify({ "cpf": cpf }); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; const response = await fetch("https://mock.apidog.com/m1/1053378-0-default/pacientes/validar-cpf", requestOptions); const result = await response.json(); return result } const BuscarPacienteExistentePeloCPF = async (value) => { if(isNaN(value[13]) === false && value.length === 14)try { const result = await BuscarCPFnoBancodeDados(value); console.log("Resultado:", result); if (result.data.existe === true){ var myHeaders = new Headers(); myHeaders.append("Authorization", "Bearer "); var requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; fetch("https://mock.apidog.com/m1/1053378-0-default/pacientes/", requestOptions) .then(response => response.json()) .then(result => setPaciente(result.data)) .catch(error => console.log('error', error)); } } catch (error) { console.log("error", error); } //BuscarCPFnoBancodeDados(value) } const handleChange = (e) => { const {value, name} = e.target; console.log(value, name) if(name === 'email'){ setPaciente({...paciente, contato:{ ...paciente.contato, email:value }}) }else{ setPaciente({...paciente,[name]:value}) } } const handleSubmit = (e) => { e.preventDefault(); alert("Agendamento salvo!"); }; return (

Informações do paciente

e.target.value = FormatCPF(e.target.value)} />
{(inputProps) => }

Informações adicionais

setSelectedFile(e.target.files[0])} /> {selectedFile && ( )}
{loadingAnexos ? (

Carregando anexos...

) : ( anexos.map((anexo, index) => (
{anexo.nome || anexo.fileName}
)) )}

Informações do atendimento

handleclickAcessibilidade(e.currentTarget.id)}> accessible
handleclickAcessibilidade(e.currentTarget.id)}> elderly
handleclickAcessibilidade(e.currentTarget.id)}> pregnant_woman
handleclickAcessibilidade(e.currentTarget.id)}>
handleclickAcessibilidade(e.currentTarget.id)}>
); }; export default FormNovaConsulta;