import React, { useState, useEffect } from "react"; import API_KEY from "../components/utils/apiKeys"; import { useAuth } from "../components/utils/AuthProvider"; import { Link } from "react-router-dom"; function TableDoctor() { const { getAuthorizationHeader, isAuthenticated } = useAuth(); const [medicos, setMedicos] = useState([]); const [search, setSearch] = useState(""); const [filtroAniversariante, setFiltroAniversariante] = useState(false); // estados do modal const [showDeleteModal, setShowDeleteModal] = useState(false); const [selectedDoctorId, setSelectedDoctorId] = useState(null); // Função para excluir médicos const deleteDoctor = async (id) => { const authHeader = getAuthorizationHeader() console.log(id, 'teu id') var myHeaders = new Headers(); myHeaders.append('apikey', API_KEY); myHeaders.append("Authorization", authHeader) var requestOptions = { method: "DELETE", redirect: "follow", headers:myHeaders }; try { const result = await fetch( `https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/doctors?id=eq.${id}`, requestOptions ); setMedicos((prev) => prev.filter((p) => p.id !== id)); console.log(result) } catch (error) { console.log("Deu problema", error); } finally { setShowDeleteModal(false); } }; // 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(() => { const authHeader = getAuthorizationHeader() console.log(authHeader, 'aqui autorização') var myHeaders = new Headers(); myHeaders.append("apikey", API_KEY); myHeaders.append("Authorization", `${authHeader}`); var requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; fetch("https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/doctors", requestOptions) .then(response => response.json()) .then(result => {setMedicos(result); console.log(result)}) .catch(error => console.log('error', error)); }, []); // ✨ CORREÇÃO AQUI: Verificamos se 'medicos' é um array antes de filtrar. const medicosFiltrados = Array.isArray(medicos) ? medicos.filter( (medico) => `${medico.nome} ${medico.cpf} ${medico.email} ${medico.telefone}` .toLowerCase() .includes(search.toLowerCase()) && (filtroAniversariante ? ehAniversariante(medico.data_nascimento) : true) ) : []; // Se não for um array, usamos um array vazio como fallback. return ( <>

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 Ações
{medico.full_name} {medico.cpf} {medico.email} {medico.telefone} {medico.ativo}
{/* Ver Detalhes */} {/* Editar */}
Nenhum médico encontrado.
{/* Modal de confirmação de exclusão */} {showDeleteModal && (
e.target.classList.contains("modal") && setShowDeleteModal(false) } >
Confirmação de Exclusão

Tem certeza que deseja excluir este médico?

)} ); } export default TableDoctor;