import React, { useState, useEffect } from "react"; function TablePaciente({ setCurrentPage, setPatientID }) { const [pacientes, setPacientes] = useState([]); const [search, setSearch] = useState(""); const [filtroConvenio, setFiltroConvenio] = useState("Todos"); const [filtroVIP, setFiltroVIP] = useState(false); const [filtroAniversariante, setFiltroAniversariante] = useState(false); 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)); }; // Requisição inicial para buscar pacientes useEffect(() => { fetch("https://mock.apidog.com/m1/1053378-0-default/pacientes") .then((response) => response.json()) .then((result) => setPacientes(result["data"])) .catch((error) => console.log("Erro para encontrar pacientes no banco de dados", error) ); }, []); // Função para verificar se hoje é aniversário do paciente const ehAniversariante = (dataNascimento) => { if (!dataNascimento) return false; const hoje = new Date(); const nascimento = new Date(dataNascimento); return ( hoje.getDate() === nascimento.getDate() && hoje.getMonth() === nascimento.getMonth() ); }; const pacientesFiltrados = pacientes.filter((paciente) => { const texto = `${paciente.nome}`.toLowerCase(); const passaBusca = texto.includes(search.toLowerCase()); const passaVIP = filtroVIP ? paciente.vip === true : true; const passaConvenio = filtroConvenio === "Todos" || paciente.convenio === filtroConvenio; const passaAniversario = filtroAniversariante ? ehAniversariante(paciente.data_nascimento) : true; return passaBusca && passaVIP && passaConvenio && passaAniversario; }); return ( <>

Lista de Pacientes

Pacientes Cadastrados

Filtros
setSearch(e.target.value)} style={{ minWidth: 250, maxWidth: 300, width: 260, flex: "0 0 auto", }} />
{pacientesFiltrados.length > 0 ? ( pacientesFiltrados.map((paciente) => ( )) ) : ( )}
Nome CPF Email Telefone
{paciente.nome} {paciente.cpf} {paciente.email} {paciente.telefone} {paciente.ativo}
Nenhum paciente encontrado.
); } export default TablePaciente;