import React, { useState, useEffect } from 'react'; import PatientList from '../components/patients/PatientList'; import PatientForm from '../components/patients/PatientForm'; function TablePaciente({ setCurrentPage, setPatientID }) { const [pacientes, setPacientes] = useState([]); const [search, setSearch] = useState(""); const GetAnexos = async (id) => { var myHeaders = new Headers(); myHeaders.append("Authorization", "Bearer "); var requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; try { const response = await fetch(`https://mock.apidog.com/m1/1053378-0-default/pacientes/${id}/anexos`, requestOptions); const result = await response.json(); return result.data; // agora retorna corretamente } catch (error) { console.log('error', error); return []; } } const DeleteAnexo = async (patientID) => { const RespostaGetAnexos = await GetAnexos(patientID) for(let i = 0; i < RespostaGetAnexos.length; i++){ const idAnexo = RespostaGetAnexos[i].id; console.log('anexos',RespostaGetAnexos) var myHeaders = new Headers(); myHeaders.append("Authorization", "Bearer "); var requestOptions = { method: 'DELETE', headers: myHeaders, redirect: 'follow' }; fetch(`https://mock.apidog.com/m1/1053378-0-default/pacientes/${patientID}/anexos/${idAnexo}`, requestOptions) .then(response => response.text()) .then(result => console.log('anexo excluido com sucesso',result)) .catch(error => console.log('error', error)); } } // Função para excluir paciente const deletePatient = async (id) => { DeleteAnexo(id) const requestOptionsDelete = { method: "DELETE", redirect: "follow" }; if (!window.confirm("Tem certeza que deseja excluir este paciente?")) return; await fetch( `https://mock.apidog.com/m1/1053378-0-default/pacientes/${id}`, requestOptionsDelete ) .then((response) => response.text()) .then((mensage) => console.log(mensage)) .catch((error) => console.log("Deu problema", error)); }; const onChange = (e, id) => { let value = e.target.value; if(value === 'verdetalhes'){ setCurrentPage('details-page-paciente') setPatientID(id); } if(value === 'editar'){ setCurrentPage('edit-page-paciente') setPatientID(id); } if (value === "excluir") { deletePatient(id); console.log(`Excluir ${id}`); } }; var requestOptions = { method: "GET", redirect: "follow", }; useEffect(() => { fetch( "https://mock.apidog.com/m1/1053378-0-default/pacientes", requestOptions ) .then((response) => response.json()) .then((result) => setPacientes(result["data"])) .catch((error) => console.log("Erro para encontrar pacientes no banco de dados", error) ); }, []); // Filtrar pacientes pelo campo de pesquisa (nome, cpf, email, telefone) const pacientesFiltrados = pacientes.filter((paciente) => `${paciente.nome} ${paciente.cpf} ${paciente.email} ${paciente.telefone}` .toLowerCase() .includes(search.toLowerCase()) ); return ( <>

Lista de Pacientes

{/* Header com título e botão alinhados */}

Pacientes Cadastrados

{/* Barra de pesquisa abaixo do título */}
setSearch(e.target.value)} className="form-control" />
{pacientesFiltrados.length > 0 ? ( pacientesFiltrados.map((paciente) => ( )) ) : ( )}
Nome CPF Email Telefone Opções
{paciente.nome} {paciente.cpf} {paciente.email} {paciente.telefone} {paciente.ativo}
Nenhum paciente encontrado.
); } export default TablePaciente;