import React, { useState, useEffect } from "react"; import handleApiResponse from '../assets/utils/apiHandler'; function TableDoctor({ setCurrentPage, setPatientID }) { const [medicos, setMedicos] = useState([]); const [search, setSearch] = useState(""); const [filtroAniversariante, setFiltroAniversariante] = useState(false); const [errorMessage, setErrorMessage] = useState(""); const [fieldErrors, setFieldErrors] = useState({}); // Função para excluir médicos const deleteDoctor = async (id) => { const requestOptionsDelete = { method: "DELETE", redirect: "follow" }; if (!window.confirm("Tem certeza que deseja excluir este médico?")) 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)); .then(handleApiResponse) .then((data) => { setPaciente(data); setErrorMessage(""); setFieldErrors({}); }) .catch((error) => { setErrorMessage(error.message || "Erro desconhecido"); setFieldErrors(error.details || {}); }); }; // Função para verificar se hoje é aniversário 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() ); }; // Buscar médicos da API useEffect(() => { fetch("https://mock.apidog.com/m1/1053378-0-default/pacientes") .then((response) => response.json()) // .then((result) => setMedicos(result["data"])) // .catch((error) => // console.log("Erro para encontrar médicos no banco de dados", error) // ); .then(handleApiResponse) .then((data) => { setMedicos(result[data]); setErrorMessage(""); setFieldErrors({}); }) .catch((error) => { setErrorMessage(error.message || "Erro desconhecido"); setFieldErrors(error.details || {}); }); }, []); // Filtrar médicos pelo campo de pesquisa e aniversariantes const medicosFiltrados = medicos.filter( (medico) => `${medico.nome} ${medico.cpf} ${medico.email} ${medico.telefone}` .toLowerCase() .includes(search.toLowerCase()) && (filtroAniversariante ? ehAniversariante(medico.data_nascimento) : true) ); return ( <> {errorMessage && (
{errorMessage}
)} {/* Mensagens de erro específicas */} {Object.keys(fieldErrors).length > 0 && (
{Object.entries(fieldErrors).map(([campo, mensagens]) => (
{campo}:
))}
)}

Lista de Médicos

Médicos Cadastrados

setSearch(e.target.value)} className="form-control" style={{ maxWidth: "300px" }} />
{medicosFiltrados.length > 0 ? ( medicosFiltrados.map((medico) => ( )) ) : ( )}
Nome CPF Email Telefone
{medico.nome} {medico.cpf} {medico.email} {medico.telefone} {medico.ativo}
Nenhum médico encontrado.
); } export default TableDoctor;