diff --git a/src/pages/DoctorTable.jsx b/src/pages/DoctorTable.jsx index 21dfa84..3b89be5 100644 --- a/src/pages/DoctorTable.jsx +++ b/src/pages/DoctorTable.jsx @@ -10,10 +10,9 @@ function TableDoctor() { const [medicos, setMedicos] = useState([]); const [search, setSearch] = useState(""); const [filtroEspecialidade, setFiltroEspecialidade] = useState("Todos"); - // REMOVIDO: const [filtroVIP, setFiltroVIP] = useState(false); const [filtroAniversariante, setFiltroAniversariante] = useState(false); - // Estados para filtros avançados + const [showFiltrosAvancados, setShowFiltrosAvancados] = useState(false); const [filtroCidade, setFiltroCidade] = useState(""); const [filtroEstado, setFiltroEstado] = useState(""); @@ -22,11 +21,24 @@ function TableDoctor() { const [dataInicial, setDataInicial] = useState(""); const [dataFinal, setDataFinal] = useState(""); - // estados do modal + const [showDeleteModal, setShowDeleteModal] = useState(false); const [selectedDoctorId, setSelectedDoctorId] = useState(null); - // Função para excluir médicos + const limparFiltros = () => { + setSearch(""); + setFiltroEspecialidade("Todos"); + setFiltroAniversariante(false); + setShowFiltrosAvancados(false); + setFiltroCidade(""); + setFiltroEstado(""); + setIdadeMinima(""); + setIdadeMaxima(""); + setDataInicial(""); + setDataFinal(""); + }; + + const deleteDoctor = async (id) => { const authHeader = getAuthorizationHeader() console.log(id, 'teu id') @@ -51,7 +63,7 @@ function TableDoctor() { } }; - // Função para verificar se hoje é aniversário + const ehAniversariante = (dataNascimento) => { if (!dataNascimento) return false; const hoje = new Date(); @@ -63,7 +75,7 @@ function TableDoctor() { ); }; - // Função para calcular idade a partir da data de nascimento + const calcularIdade = (dataNascimento) => { if (!dataNascimento) return 0; const hoje = new Date(); @@ -77,30 +89,6 @@ function TableDoctor() { return idade; }; -<<<<<<< HEAD - // Função para limpar todos os filtros - const limparFiltros = () => { - setSearch(""); - setFiltroEspecialidade("Todos"); - // REMOVIDO: setFiltroVIP(false); - setFiltroAniversariante(false); - setShowFiltrosAvancados(false); // Adicionado para fechar os avançados - setFiltroCidade(""); - setFiltroEstado(""); - setIdadeMinima(""); - setIdadeMaxima(""); - setDataInicial(""); - setDataFinal(""); - }; -======= - 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)); - }, []); ->>>>>>> main - - // Buscar médicos da API useEffect(() => { const authHeader = getAuthorizationHeader() console.log(authHeader, 'aqui autorização') @@ -120,53 +108,44 @@ function TableDoctor() { .catch(error => console.log('error', error)); }, [isAuthenticated, getAuthorizationHeader]); - // ✨ FILTRO CORRIGIDO - Baseado na estrutura real dos dados + const medicosFiltrados = Array.isArray(medicos) ? medicos.filter((medico) => { - // Filtro por nome OU CPF - usando campos reais da API const buscaNome = medico.full_name?.toLowerCase().includes(search.toLowerCase()); const buscaCPF = medico.cpf?.toLowerCase().includes(search.toLowerCase()); const buscaEmail = medico.email?.toLowerCase().includes(search.toLowerCase()); const passaBusca = search === "" || buscaNome || buscaCPF || buscaEmail; - // Filtro por especialidade - ajustando para campo real + const passaEspecialidade = filtroEspecialidade === "Todos" || medico.specialty === filtroEspecialidade; - // REMOVIDO: Filtro VIP - Não é mais utilizado - // const passaVIP = filtroVIP ? medico.vip === true : true; - - // Filtro aniversariante const passaAniversario = filtroAniversariante ? ehAniversariante(medico.birth_date) : true; - // Filtros avançados - ajustando para campos reais const passaCidade = filtroCidade ? medico.city?.toLowerCase().includes(filtroCidade.toLowerCase()) : true; const passaEstado = filtroEstado ? medico.state?.toLowerCase().includes(filtroEstado.toLowerCase()) : true; - // Filtro por idade - usando birth_date const idade = calcularIdade(medico.birth_date); const passaIdadeMinima = idadeMinima ? idade >= parseInt(idadeMinima) : true; const passaIdadeMaxima = idadeMaxima ? idade <= parseInt(idadeMaxima) : true; - // Filtro por data de cadastro - usando created_at ou similar + const passaDataInicial = dataInicial ? medico.created_at && new Date(medico.created_at) >= new Date(dataInicial) : true; const passaDataFinal = dataFinal ? medico.created_at && new Date(medico.created_at) <= new Date(dataFinal) : true; - // Combinação de todos os filtros (passaVIP removido) + const resultado = passaBusca && passaEspecialidade && passaAniversario && passaCidade && passaEstado && passaIdadeMinima && passaIdadeMaxima && passaDataInicial && passaDataFinal; return resultado; }) : []; - - // Contador de médicos filtrados useEffect(() => { console.log(` Médicos totais: ${medicos.length}, Filtrados: ${medicosFiltrados.length}`); }, [medicos, medicosFiltrados, search]); @@ -190,14 +169,13 @@ function TableDoctor() {