From cd38ab54acb7104b91f671da946074d96f50d758 Mon Sep 17 00:00:00 2001 From: Caio Miguel Lima Nunes Date: Wed, 15 Oct 2025 22:12:46 -0300 Subject: [PATCH] resolvido os conflitos de merge nos arquivos --- src/pages/DoctorTable.jsx | 102 +++++++++------------------ src/pages/PatientCadastroManager.jsx | 4 -- src/pages/TablePaciente.jsx | 61 ++++------------ src/pages/style/TableDoctor.css | 21 +++--- src/pages/style/TablePaciente.css | 21 +++--- 5 files changed, 64 insertions(+), 145 deletions(-) diff --git a/src/pages/DoctorTable.jsx b/src/pages/DoctorTable.jsx index 21dfa84f..3b89be5e 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() {
- {/* Seção de Filtros */} +
{" "} Filtros
- {/* Busca por nome OU CPF ou email */}
- {/* Filtros Básicos - LADO A LADO */} +
- {/* Intervalo de Idade */}
- {/* Informações dos filtros ativos */} + {(search || filtroEspecialidade !== "Todos" || filtroAniversariante || // filtroVIP removido filtroCidade || filtroEstado || idadeMinima || idadeMaxima || dataInicial || dataFinal) && (
@@ -360,7 +328,7 @@ function TableDoctor() {
{search && Busca: "{search}"} {filtroEspecialidade !== "Todos" && Especialidade: {filtroEspecialidade}} - {/* REMOVIDO: {filtroVIP && VIP} */} + {filtroAniversariante && Aniversariantes} {filtroCidade && Cidade: {filtroCidade}} {filtroEstado && Estado: {filtroEstado}} @@ -372,14 +340,14 @@ function TableDoctor() {
)} - {/* Contador de resultados */} +
{medicosFiltrados.length} de {medicos.length} médicos encontrados
- {/* Tabela de Médicos */} +
@@ -403,12 +371,7 @@ function TableDoctor() { )} - {/* REMOVIDO: Badge VIP - {medico.vip && ( - - VIP - - )} */} + @@ -461,7 +424,6 @@ function TableDoctor() { - {/* Modal de confirmação */} {showDeleteModal && (
>>>>>> main setTimeout(() => { setShowModal(false); navigate('/secretaria/pacientes'); diff --git a/src/pages/TablePaciente.jsx b/src/pages/TablePaciente.jsx index 1006a25e..53b5c79a 100644 --- a/src/pages/TablePaciente.jsx +++ b/src/pages/TablePaciente.jsx @@ -2,7 +2,7 @@ import React, { useState, useEffect } from "react"; import { Link } from "react-router-dom"; import API_KEY from "../components/utils/apiKeys"; import { useAuth } from "../components/utils/AuthProvider"; -import "./style/TablePaciente.css"; // Import do CSS +import "./style/TablePaciente.css"; function TablePaciente({ setCurrentPage, setPatientID }) { @@ -13,8 +13,6 @@ function TablePaciente({ setCurrentPage, setPatientID }) { const [filtroConvenio, setFiltroConvenio] = useState("Todos"); 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(""); @@ -23,7 +21,6 @@ function TablePaciente({ setCurrentPage, setPatientID }) { const [dataInicial, setDataInicial] = useState(""); const [dataFinal, setDataFinal] = useState(""); - // estados do modal const [showDeleteModal, setShowDeleteModal] = useState(false); const [selectedPatientId, setSelectedPatientId] = useState(null); @@ -77,7 +74,6 @@ function TablePaciente({ setCurrentPage, setPatientID }) { } }; - // função de exclusão atualizada const deletePatient = async (id) => { const authHeader = getAuthorizationHeader() @@ -103,16 +99,11 @@ function TablePaciente({ setCurrentPage, setPatientID }) { } }; - // Requisição inicial para buscar pacientes useEffect(() => { const authHeader = getAuthorizationHeader() -<<<<<<< HEAD console.log(authHeader, 'aqui autorização') -======= - console.log(authHeader) ->>>>>>> main var myHeaders = new Headers(); myHeaders.append("apikey", API_KEY); @@ -123,20 +114,12 @@ function TablePaciente({ setCurrentPage, setPatientID }) { redirect: 'follow' }; -<<<<<<< HEAD fetch("https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/patients", requestOptions) .then(response => response.json()) .then(result => setPacientes(result)) .catch(error => console.log('error', error)); -======= - fetch("https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/patients", requestOptions) - .then(response => response.json()) - .then(result => {setPacientes(result); console.log(result)}) - .catch(error => console.log('error', error)); ->>>>>>> main }, [isAuthenticated, getAuthorizationHeader]); - // Função para verificar se hoje é aniversário do paciente const ehAniversariante = (dataNascimento) => { if (!dataNascimento) return false; const hoje = new Date(); @@ -148,7 +131,6 @@ function TablePaciente({ setCurrentPage, setPatientID }) { ); }; - // Função para calcular idade a partir da data de nascimento const calcularIdade = (dataNascimento) => { if (!dataNascimento) return 0; const hoje = new Date(); @@ -162,7 +144,6 @@ function TablePaciente({ setCurrentPage, setPatientID }) { return idade; }; - // Função para limpar todos os filtros const limparFiltros = () => { setSearch(""); setFiltroConvenio("Todos"); @@ -176,42 +157,40 @@ function TablePaciente({ setCurrentPage, setPatientID }) { setDataFinal(""); }; - // FILTRO CORRIGIDO - Baseado na estrutura real dos dados const pacientesFiltrados = Array.isArray(pacientes) ? pacientes.filter((paciente) => { - // Filtro por nome OU CPF - usando campos reais da API + const buscaNome = paciente.full_name?.toLowerCase().includes(search.toLowerCase()); const buscaCPF = paciente.cpf?.toLowerCase().includes(search.toLowerCase()); const passaBusca = search === "" || buscaNome || buscaCPF; - // Filtro por convênio - ajustando para campo real + const passaConvenio = filtroConvenio === "Todos" || paciente.insurance_plan === filtroConvenio; - // Outros filtros const passaVIP = filtroVIP ? paciente.vip === true : true; const passaAniversario = filtroAniversariante ? ehAniversariante(paciente.birth_date) : true; - // Filtros avançados - ajustando para campos reais + const passaCidade = filtroCidade ? paciente.city?.toLowerCase().includes(filtroCidade.toLowerCase()) : true; const passaEstado = filtroEstado ? paciente.state?.toLowerCase().includes(filtroEstado.toLowerCase()) : true; - // Filtro por idade - usando birth_date + const idade = calcularIdade(paciente.birth_date); const passaIdadeMinima = idadeMinima ? idade >= parseInt(idadeMinima) : true; const passaIdadeMaxima = idadeMaxima ? idade <= parseInt(idadeMaxima) : true; - // Filtro por data do último atendimento - usando last_appointment + const passaDataInicial = dataInicial ? paciente.last_appointment && new Date(paciente.last_appointment) >= new Date(dataInicial) : true; const passaDataFinal = dataFinal ? paciente.last_appointment && new Date(paciente.last_appointment) <= new Date(dataFinal) : true; - // Combinação: (Nome OU CPF) E Convênio E outros filtros + const resultado = passaBusca && passaConvenio && passaVIP && passaAniversario && passaCidade && passaEstado && passaIdadeMinima && passaIdadeMaxima && passaDataInicial && passaDataFinal; @@ -219,9 +198,8 @@ function TablePaciente({ setCurrentPage, setPatientID }) { return resultado; }) : []; - // Contador de pacientes filtrados useEffect(() => { - console.log(`📈 Pacientes totais: ${pacientes.length}, Filtrados: ${pacientesFiltrados.length}`); + console.log(` Pacientes totais: ${pacientes.length}, Filtrados: ${pacientesFiltrados.length}`); }, [pacientes, pacientesFiltrados, search]); return ( @@ -243,14 +221,12 @@ function TablePaciente({ setCurrentPage, setPatientID }) {
- {/* Seção de Filtros */}
{" "} Filtros
- {/* Busca por nome ou CPF */}
- {/* Filtros Básicos */}
- {/* Botão para mostrar/ocultar filtros avançados */}
- {/* Filtros Avançados */} {showFiltrosAvancados && (
Filtros Avançados
- {/* Localização */}
- {/* Intervalo de Idade */}
- {/* Data do Último Atendimento */}
- {/* Informações dos filtros ativos */} {(search || filtroConvenio !== "Todos" || filtroVIP || filtroAniversariante || filtroCidade || filtroEstado || idadeMinima || idadeMaxima || dataInicial || dataFinal) && (
@@ -412,14 +380,12 @@ function TablePaciente({ setCurrentPage, setPatientID }) {
)} - {/* Contador de resultados */}
{pacientesFiltrados.length} de {pacientes.length} pacientes encontrados
- {/* Tabela de Pacientes */}
{medico.cpf}
@@ -502,7 +468,6 @@ function TablePaciente({ setCurrentPage, setPatientID }) { - {/* Modal de confirmação */} {showDeleteModal && (