diff --git a/src/PagesPaciente/ConsultasPaciente.jsx b/src/PagesPaciente/ConsultasPaciente.jsx index fd7d312..1a732f1 100644 --- a/src/PagesPaciente/ConsultasPaciente.jsx +++ b/src/PagesPaciente/ConsultasPaciente.jsx @@ -2,35 +2,75 @@ import React from 'react' import "./style.css" import CardConsultaPaciente from './CardConsultaPaciente' import { useNavigate } from 'react-router-dom' -import { useEffect, useState } from 'react' +import { useEffect, useState, useMemo } from 'react' import API_KEY from '../components/utils/apiKeys' import { useAuth } from '../components/utils/AuthProvider' +import { UserInfos } from '../components/utils/Functions-Endpoints/General' + +import TabelaAgendamentoDia from "../components/AgendarConsulta/TabelaAgendamentoDia" + const ConsultasPaciente = ({ setConsulta }) => { const { getAuthorizationHeader } = useAuth() - + const [agendamentosOrganizados, setAgendamentosOrganizados] = useState({}) + const [listaTodasConsultas, setListaTodasConsultas] = useState([]) + const [patientID, setPatientID] = useState("") const [showDeleteModal, setShowDeleteModal] = useState(false) const [selectedID, setSelectedId] = useState("") let authHeader = getAuthorizationHeader() const [consultas, setConsultas] = useState([]) - const FiltrarAgendamentos = (agendamentos, id) => { - if (!agendamentos || !Array.isArray(agendamentos)) { - console.error("A lista de agendamentos é inválida."); - setConsultas([]); - return; + const [consultasOrganizadas, setConsultasOrganizadas] = useState({}) + + const [filaDeEspera, setFilaDeEspera] = useState([]) + + useMemo(() => { + let conjuntoConsultas = {} + let filaEspera = [] + + console.log("so muda") + if(!listaTodasConsultas.length) return + + for(let i = 0; listaTodasConsultas.length > i; i++){ + + let consulta = listaTodasConsultas[i] + if(consulta.status === "requested"){ + + filaDeEspera.push(consulta) + + + }else{ + + let data = consulta.scheduled_at.split("T")[0] + let chavesConsultas = Object.keys(conjuntoConsultas) + + if(chavesConsultas.includes(data)){ + let lista = conjuntoConsultas[data] + + lista.push(consulta) + + conjuntoConsultas = {...conjuntoConsultas, [data]:lista} + }else{ + conjuntoConsultas = {...conjuntoConsultas, [data]:[consulta] } + } + } } + - const consultasFiltradas = agendamentos.filter(agendamento => { - return agendamento.patient_id && agendamento.patient_id.toString() === id.toString(); - }); + setConsultasOrganizadas(conjuntoConsultas) + setFilaDeEspera(filaEspera) - console.log(consultasFiltradas) - setConsultas(consultasFiltradas); - } + console.log(conjuntoConsultas) + + + + }, [listaTodasConsultas]) + useEffect(() => { + let userInfos = UserInfos(authHeader) + const fetchConsultas = async () => { try { const myHeaders = new Headers(); @@ -43,16 +83,16 @@ const ConsultasPaciente = ({ setConsulta }) => { redirect: 'follow' }; - const response = await fetch("https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/appointments?select=*", requestOptions); + const response = await fetch(`https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/appointments?patient_id=eq.${"6e7f8829-0574-42df-9290-8dbb70f75ada"}`, requestOptions); const result = await response.json(); - FiltrarAgendamentos(result, "6e7f8829-0574-42df-9290-8dbb70f75ada"); + setListaTodasConsultas(result); } catch (error) { console.log('error', error); } }; fetchConsultas(); - }, [authHeader]); + }, []); const navigate = useNavigate() const deleteConsulta = async (ID) => { @@ -99,10 +139,7 @@ const ConsultasPaciente = ({ setConsulta }) => {

Seus próximos atendimentos

- {consultas.map((consulta) => ( - - ))} - + {showDeleteModal &&
diff --git a/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx b/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx index a7d3ebf..cee2f9c 100644 --- a/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx +++ b/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx @@ -10,7 +10,7 @@ const TabelaAgendamentoDia = ({ handleClickAgendamento, agendamentos, setShowDel let ListaDiasComAgendamentos = Object.keys(agendamentos) - + console.log(agendamentos, "tentativa colocar consultas") //console.log(Dia, "hshdhshhsdhs") diff --git a/src/pages/Login.jsx b/src/pages/Login.jsx index 4245152..831b94a 100644 --- a/src/pages/Login.jsx +++ b/src/pages/Login.jsx @@ -127,6 +127,8 @@ function Login({ onEnterSystem }) { navigate(`/medico/`); } else if (UserData?.roles?.includes("financeiro")) { navigate(`/financeiro/`); + } else if (UserData?.roles?.includes("paciente")) { + navigate(`/paciente/`); } }else{ console.log("ERROROROROROOR")