From 95054bb9c1db539048b070f12f1e81d2704d4dfb Mon Sep 17 00:00:00 2001 From: joao_pedro Date: Sat, 25 Oct 2025 17:01:39 -0300 Subject: [PATCH 01/12] Erro de login --- src/components/utils/fetchErros/ModalErro.jsx | 2 +- src/pages/Login.jsx | 13 +++++++------ src/pages/TablePaciente.jsx | 18 +++++++----------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/components/utils/fetchErros/ModalErro.jsx b/src/components/utils/fetchErros/ModalErro.jsx index c1d1912..e3560d5 100644 --- a/src/components/utils/fetchErros/ModalErro.jsx +++ b/src/components/utils/fetchErros/ModalErro.jsx @@ -24,7 +24,7 @@ return(
-{showModal ? +{showModal === "modal"?
diff --git a/src/pages/Login.jsx b/src/pages/Login.jsx index 4dcc3af..4245152 100644 --- a/src/pages/Login.jsx +++ b/src/pages/Login.jsx @@ -1,11 +1,13 @@ -import React, { useState, useEffect, use } from "react"; +import React, { useState, useEffect } from "react"; import { Link, useNavigate } from "react-router-dom"; import { useAuth } from "../components/utils/AuthProvider"; import API_KEY from "../components/utils/apiKeys"; import { UserInfos } from "../components/utils/Functions-Endpoints/General"; +import CabecalhoError from "../components/utils/fetchErros/CabecalhoError"; function Login({ onEnterSystem }) { const { setAuthTokens } = useAuth(); + const [showCabecalho, setShowCabecalho ] = useState(false) const navigate = useNavigate(); const [form, setForm] = useState({ username: "", @@ -126,6 +128,9 @@ function Login({ onEnterSystem }) { } else if (UserData?.roles?.includes("financeiro")) { navigate(`/financeiro/`); } + }else{ + console.log("ERROROROROROOR") + setShowCabecalho(true) } } else { setAlert("Preencha todos os campos!"); @@ -148,11 +153,7 @@ function Login({ onEnterSystem }) {

Entre com os dados que você inseriu durante o registro.

- {alert && ( -
- {alert} -
- )} +
{ // 1. VERIFICAÇÃO DO STATUS HTTP (Se não for 2xx) @@ -142,21 +144,15 @@ function TablePaciente({ setCurrentPage, setPatientID }) { return response.json(); }) .then(result => { - // 4. Bloco de SUCESSO + setPacientes(result); console.log("Sucesso:", result); - // IMPORTANTE: Se o modal estava aberto, feche-o no sucesso setShowModalError(false); }) .catch(error => { - // 5. Bloco de ERRO (Captura erros de rede ou o erro lançado pelo 'throw') - //console.error('Falha na requisição:', error.message); - if(error.httpStatus === 401){ - RefreshingToken() - } - setErrorInfo(error) - setShowModalError(true); + manager(setShowModalError, RefreshingToken, setErrorInfo, error) + }); }, [isAuthenticated, getAuthorizationHeader]); From a8fc3eb397a4fe23864b027d953f7028f6d42aac Mon Sep 17 00:00:00 2001 From: joao_pedro Date: Sat, 25 Oct 2025 17:04:39 -0300 Subject: [PATCH 02/12] Criacao manager e erro login --- .../utils/fetchErros/CabecalhoError.jsx | 17 ++++++++++++ .../utils/fetchErros/ManagerFunction.js | 16 ++++++++++++ src/components/utils/fetchErros/style.css | 26 +++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 src/components/utils/fetchErros/CabecalhoError.jsx create mode 100644 src/components/utils/fetchErros/ManagerFunction.js create mode 100644 src/components/utils/fetchErros/style.css diff --git a/src/components/utils/fetchErros/CabecalhoError.jsx b/src/components/utils/fetchErros/CabecalhoError.jsx new file mode 100644 index 0000000..1b278bb --- /dev/null +++ b/src/components/utils/fetchErros/CabecalhoError.jsx @@ -0,0 +1,17 @@ +import React from 'react'; +import './style.css'; + +const CabecalhoError = ({ showCabecalho, message, errorCode }) => { + if (!showCabecalho) return null; + + return ( +
+
+ +

{message}

+
+
+ ); +}; + +export default CabecalhoError; diff --git a/src/components/utils/fetchErros/ManagerFunction.js b/src/components/utils/fetchErros/ManagerFunction.js new file mode 100644 index 0000000..43890d2 --- /dev/null +++ b/src/components/utils/fetchErros/ManagerFunction.js @@ -0,0 +1,16 @@ +function manager (setShowModal, RefreshingToken, setErrorInfo,errorData) { + + console.log((errorData, "MANAGER")) + + + if(errorData.httpStatus === 401){ + RefreshingToken() + }else{ + + // setErrorInfo(errorData) + setShowModal("modal"); + } +} + + +export default manager \ No newline at end of file diff --git a/src/components/utils/fetchErros/style.css b/src/components/utils/fetchErros/style.css new file mode 100644 index 0000000..f1c2bfc --- /dev/null +++ b/src/components/utils/fetchErros/style.css @@ -0,0 +1,26 @@ +.cabecalho-error { + background-color: #f3616d; /* vermelho forte */ + color: white; + display: flex; + align-items: center; /* centraliza verticalmente */ + justify-content: center; /* centraliza horizontalmente */ + padding: 12px 20px; + margin: 10px; + border-radius: 8px; + font-weight: bold; + font-size: 16px; + width: calc(100% - 20px); /* ocupa quase toda a largura da div pai */ + box-sizing: border-box; +} + +.cabecalho-error-text { + margin: 0; + padding-left: 30px; /* espaço para "Erro 404" */ + position: relative; +} + +.cabecalho-error-code { + position: absolute; + left: 0; + font-weight: 700; +} From a5cd4d3447dde5ab93c88649a0d61ea52efd5fc2 Mon Sep 17 00:00:00 2001 From: joao_pedro Date: Mon, 27 Oct 2025 08:39:56 -0300 Subject: [PATCH 03/12] erros --- et --hard 63659b6 | 56 ------------------- .../utils/fetchErros/ManagerFunction.js | 1 - 2 files changed, 57 deletions(-) delete mode 100644 et --hard 63659b6 diff --git a/et --hard 63659b6 b/et --hard 63659b6 deleted file mode 100644 index 1e3987e..0000000 --- a/et --hard 63659b6 +++ /dev/null @@ -1,56 +0,0 @@ -3993097 (HEAD -> main) Merge branch 'main' of https://git.popcode.com.br/RiseUP/riseup-squad23 -63659b6 Verificação do cpf e colocar o erro 404 -ecae83c (riseup/main, riseup/HEAD, origin/main, origin/HEAD) Merge pull request 'Conectando-o-resto-das-API' (#2) from Conectando-o-resto-das-API into main -908d545 (riseup/Conectando-o-resto-das-API, origin/Conectando-o-resto-das-API) feat: adicionar upload e delete de anexos do paciente -4b404c0 Merge branch 'main' of https://git.popcode.com.br/RiseUP/riseup-squad23 -bd20c2d Merge remote-tracking branch 'origin/main' -8aeabd1 (riseup/Fix-dos-erros-do-projeto, origin/Fix-dos-erros-do-projeto) FIx: todos os erros que aparecia no console foram resolvidos -0e29e7d melhorias na organização de pastas -98f076a Mergin com TableMelhorias -589d590 Mergin com novas alterações de laudo -7b28e2a Details melhorias -9480edc (riseup/PaginaDetalhes, origin/PaginaDetalhes) Pàgina detalhes -e4515cf Adição das cores nos cards de consulta -d3dd2fd (riseup/TableMelhorias, origin/TableMelhorias) Detalhe nas tabelas -a54b119 Delete Anexos apos pacientes forem excluidos -6e93cb5 atualizar paciente -b9a35be começo do concerto do editar -82469bc Details funcional -cdfe4ea Validação de CPF -57c8f67 (riseup/DetalhesMedico, origin/DetalhesMedico) Detalhes do medico -b021444 Mudanças formularios e detalhes -d5d03b0 (riseup/mudanças-de-laudo, origin/mudanças-de-laudo) atualização do laudo -a502bbd agendamentos no incio -8e1fcd9 Merge branch 'feature/novo-cadastro-paciente' -bea9076 Merge remote-tracking branch 'origin/PaginaDetalhes' -e35f217 mergin branch inicio com main -1af8268 Atualizacão do laudo -725d60d feat: ajeitei o nome -bab85ff (riseup/AgendamentoSidebar, origin/AgendamentoSidebar) Concertar Agendamento -b2707e3 Refatora o estilo do formulário do paciente para uma aparência de cartão com tipografia maior -37e8959 Refatora o estilo do formulário do paciente para uma aparência de cartão com tipografia maior -0930385 feat: uma piquena mudança -f6a19c4 feat: Adiciona formulário de cadastro de paciente -d91b5cf form de agendar consulta melhorado -0a60dd7 Tabela semana e mes -7f07950 (riseup/feature-Melhoria-no-Dashboard, origin/feature-Melhoria-no-Dashboard) feat: Criação da página início e melhoria na navegação -39e25ad Pagina de detalhes atualizada -4f84791 pequenas mudanaças na tabela de semana e mes -6737955 form para nova consulta e tabelas de horario -26ded17 Nova pagina de detalhes -874de84 Inicio do agendamento -f3e7470 (riseup/gerenciamento-de-laudo, origin/gerenciamento-de-laudo) Laudo do Paciente -709cd4e Merge finalizado -d6b3e86 Merge detalhes-do-pacientes para main -08ffa55 Merge remote-tracking branch 'origin/CrudMedico' -70c4d5f Termino da organização -edd567d Inicio da organização -9c09113 Mudanças pos feedback de davi -aa3a5fa Criação da página dos detalhes dos pacientes -5534568 Inicio de detalhes e atualização do paciente -06ff7d5 Funcionalidade de delete e botão de opções -5b63fa2 Mascara telefones -fb9d783 adição da mascara do CPF -a489d84 metodo GET e POST -4eaabbd first commit -a244691 Initial commit diff --git a/src/components/utils/fetchErros/ManagerFunction.js b/src/components/utils/fetchErros/ManagerFunction.js index 43890d2..eaa1e19 100644 --- a/src/components/utils/fetchErros/ManagerFunction.js +++ b/src/components/utils/fetchErros/ManagerFunction.js @@ -6,7 +6,6 @@ function manager (setShowModal, RefreshingToken, setErrorInfo,errorData) { if(errorData.httpStatus === 401){ RefreshingToken() }else{ - // setErrorInfo(errorData) setShowModal("modal"); } From 8a3d6e03057c82e6140a736dde0f36465ef8ccb0 Mon Sep 17 00:00:00 2001 From: joao_pedro Date: Mon, 27 Oct 2025 10:44:09 -0300 Subject: [PATCH 04/12] Impedimento de refetching e melhoria do filtro do medico --- .../TabelaAgendamentoSemana.jsx | 19 +- src/pages/Agendamento.jsx | 187 ++++++++++-------- 2 files changed, 112 insertions(+), 94 deletions(-) diff --git a/src/components/AgendarConsulta/TabelaAgendamentoSemana.jsx b/src/components/AgendarConsulta/TabelaAgendamentoSemana.jsx index 0f5979c..84958f1 100644 --- a/src/components/AgendarConsulta/TabelaAgendamentoSemana.jsx +++ b/src/components/AgendarConsulta/TabelaAgendamentoSemana.jsx @@ -67,9 +67,9 @@ const TabelaAgendamentoSemana = ({ agendamentos, ListarDiasdoMes, setShowDeleteM break } } - + console.log(semanas) return semanas - }, [agendamentos, AnoAtual]) // Adicionei AnoAtual como dependência por segurança + }, [agendamentos, AnoAtual]) // --- EFEITO PARA POPULAR O ESTADO --- @@ -159,25 +159,26 @@ const TabelaAgendamentoSemana = ({ agendamentos, ListarDiasdoMes, setShowDeleteM {indicesDeLinha.map((indiceLinha) => { - let schedulet_at = semanaParaRenderizar.segunda[indiceLinha].scheduled_at.split("T") + //let schedulet_at = semanaParaRenderizar.segunda[indiceLinha].scheduled_at.split("T") - let horario = schedulet_at[1].split(":") + // let horario = schedulet_at[1].split(":") - console.log(horario) + + console.log(semanaParaRenderizar, "aqui") return( - {/* Célula para Horário (Pode ser ajustado para mostrar o horário real) */} + -

{`${horario[0]}:${horario[1]}`}

+ {/*

{`${horario[0]}:${horario[1]}`}

*/} {/* Mapeamento de COLUNAS (dias) */} - {semanaParaRenderizar.segunda[indiceLinha] - ? + {semanaParaRenderizar?.segunda[indiceLinha] + ? : null } diff --git a/src/pages/Agendamento.jsx b/src/pages/Agendamento.jsx index 84b7b78..505be04 100644 --- a/src/pages/Agendamento.jsx +++ b/src/pages/Agendamento.jsx @@ -23,10 +23,11 @@ import { Search } from 'lucide-react'; const Agendamento = ({setDictInfo}) => { const navigate = useNavigate(); - + + const [listaTodosAgendamentos, setListaTodosAgendamentos] = useState([]) const [selectedID, setSelectedId] = useState('0') - const [filaEsperaData, setfilaEsperaData] = useState([]) + const [filaEsperaData, setFilaEsperaData] = useState([]) const [FiladeEspera, setFiladeEspera] = useState(false); const [tabela, setTabela] = useState('diario'); const [PageNovaConsulta, setPageConsulta] = useState(false); @@ -42,72 +43,79 @@ const Agendamento = ({setDictInfo}) => { const [FiltredTodosMedicos, setFiltredTodosMedicos] = useState([]) const [searchTermDoctor, setSearchTermDoctor] = useState(''); + const [MedicoFiltrado, setMedicoFiltrado] = useState({id:"vazio"}) + let authHeader = getAuthorizationHeader() + +const cacheMedicos = {}; +const cachePacientes = {}; - const FiltrarAgendamentos = async (listaTodosAgendamentos) => { - const ConfigurarFiladeEspera = async (patient_id, doctor_id, agendamento) => { - - let medico = await GetDoctorByID(doctor_id, authHeader); - let paciente = await GetPatientByID(patient_id, authHeader); - - console.log(medico) - - let dicionario = { - agendamento: agendamento, - Infos: { - nome_medico: medico[0]?.full_name, - doctor_id: medico[0]?.id, - patient_id: paciente[0].id, - paciente_nome: paciente[0].full_name, - paciente_cpf: paciente[0].cpf - } - }; - return dicionario; - }; - - let DictAgendamentosOrganizados = {}; - let ListaFilaDeEspera = []; - + +useMemo(() => { + if (!listaTodosAgendamentos.length) return { agendamentosOrganizados: {}, filaEsperaData: [] }; +console.log("recarregando") + const DictAgendamentosOrganizados = {}; + const ListaFilaDeEspera = []; + const fetchDados = async () => { for (const agendamento of listaTodosAgendamentos) { - if (agendamento.status === 'requested') { - let v = await ConfigurarFiladeEspera(agendamento.patient_id, agendamento.doctor_id, agendamento); - ListaFilaDeEspera.push(v); - } else { - const DiaAgendamento = agendamento.scheduled_at.split("T")[0]; - - if (DiaAgendamento in DictAgendamentosOrganizados) { - DictAgendamentosOrganizados[DiaAgendamento].push(agendamento); - } else { - DictAgendamentosOrganizados[DiaAgendamento] = [agendamento]; - } + if (agendamento.status === "requested") { + // Cache de médico e paciente + if (!cacheMedicos[agendamento.doctor_id]) { + cacheMedicos[agendamento.doctor_id] = await GetDoctorByID(agendamento.doctor_id, authHeader); + } + if (!cachePacientes[agendamento.patient_id]) { + cachePacientes[agendamento.patient_id] = await GetPatientByID(agendamento.patient_id, authHeader); } - } - for (const DiaAgendamento in DictAgendamentosOrganizados) { - DictAgendamentosOrganizados[DiaAgendamento].sort((a, b) => { - if (a.scheduled_at < b.scheduled_at) return -1; - if (a.scheduled_at > b.scheduled_at) return 1; - return 0; + const medico = cacheMedicos[agendamento.doctor_id]; + const paciente = cachePacientes[agendamento.patient_id]; + + ListaFilaDeEspera.push({ + agendamento, + Infos: { + nome_medico: medico[0]?.full_name, + doctor_id: medico[0]?.id, + patient_id: paciente[0]?.id, + paciente_nome: paciente[0]?.full_name, + paciente_cpf: paciente[0]?.cpf, + }, }); + } else { + const DiaAgendamento = agendamento.scheduled_at.split("T")[0]; + + if (DiaAgendamento in DictAgendamentosOrganizados) { + DictAgendamentosOrganizados[DiaAgendamento].push(agendamento); + } else { + DictAgendamentosOrganizados[DiaAgendamento] = [agendamento]; + } + } } + // Ordenar por data + for (const DiaAgendamento in DictAgendamentosOrganizados) { + DictAgendamentosOrganizados[DiaAgendamento].sort((a, b) => a.scheduled_at.localeCompare(b.scheduled_at)); + } - const chavesOrdenadas = Object.keys(DictAgendamentosOrganizados).sort((a, b) => { - if (a < b) return -1; - if (a > b) return 1; - return 0; - }); + const chavesOrdenadas = Object.keys(DictAgendamentosOrganizados).sort(); - let DictAgendamentosFinal = {}; + const DictAgendamentosFinal = {}; for (const data of chavesOrdenadas) { - DictAgendamentosFinal[data] = DictAgendamentosOrganizados[data]; + DictAgendamentosFinal[data] = DictAgendamentosOrganizados[data]; } - setAgendamentosOrganizados(DictAgendamentosFinal); - setfilaEsperaData(ListaFilaDeEspera); -}; + + setAgendamentosOrganizados(DictAgendamentosFinal); + setFilaEsperaData(ListaFilaDeEspera); + }; + + fetchDados(); + + return { agendamentosOrganizados: DictAgendamentosOrganizados, filaEsperaData: ListaFilaDeEspera }; +}, [listaTodosAgendamentos]); // 👉 só recalcula quando a lista muda + + useEffect(() => { var myHeaders = new Headers(); myHeaders.append("Authorization", authHeader); @@ -121,7 +129,7 @@ const Agendamento = ({setDictInfo}) => { fetch("https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/appointments?select&doctor_id&patient_id&status&scheduled_at&order&limit&offset", requestOptions) .then(response => response.json()) - .then(result => {FiltrarAgendamentos(result);console.log(result)}) + .then(result => {setListaTodosAgendamentos(result);console.log(result)}) .catch(error => console.log('error', error)); const PegarTodosOsMedicos = async () => { @@ -135,24 +143,7 @@ const Agendamento = ({setDictInfo}) => { PegarTodosOsMedicos() }, []) - useEffect(() => { - console.log("mudou FiltredTodosMedicos:", FiltredTodosMedicos); - if (FiltredTodosMedicos.length === 1) { - const unicoMedico = FiltredTodosMedicos[0]; - console.log(unicoMedico) - const idMedicoFiltrado = unicoMedico.idMedico; - console.log(`Médico único encontrado: ${unicoMedico.nomeMedico}. ID: ${idMedicoFiltrado}`); - - const agendamentosDoMedico = filtrarAgendamentosPorMedico( - DictAgendamentosOrganizados, - idMedicoFiltrado - ); - console.log(`Total de agendamentos filtrados para este médico: ${agendamentosDoMedico.length}`); - console.log("Lista completa de Agendamentos do Médico:", agendamentosDoMedico); - FiltrarAgendamentos(agendamentosDoMedico) - - } - }, [FiltredTodosMedicos]); + const deleteConsulta = (selectedPatientId) => { var myHeaders = new Headers(); @@ -179,17 +170,6 @@ const deleteConsulta = (selectedPatientId) => { } -const filtrarAgendamentosPorMedico = (dictAgendamentos, idMedicoFiltrado) => { - - const todasAsListasDeAgendamentos = Object.values(dictAgendamentos); - const todosOsAgendamentos = todasAsListasDeAgendamentos.flat(); - - const agendamentosFiltrados = todosOsAgendamentos.filter(agendamento => - agendamento.doctor_id === idMedicoFiltrado - ); - - return agendamentosFiltrados; -}; const filteredAgendamentos = useMemo(() => { @@ -238,12 +218,49 @@ const filtrarAgendamentosPorMedico = (dictAgendamentos, idMedicoFiltrado) => { }; + useEffect(() => { + console.log("mudou FiltredTodosMedicos:", FiltredTodosMedicos); + if (MedicoFiltrado.id != "vazio" ) { + const unicoMedico = MedicoFiltrado; + console.log(unicoMedico) + const idMedicoFiltrado = unicoMedico.idMedico; + console.log(`Médico único encontrado: ${unicoMedico.nomeMedico}. ID: ${idMedicoFiltrado}`); + + const agendamentosDoMedico = filtrarAgendamentosPorMedico( + DictAgendamentosOrganizados, + idMedicoFiltrado + ); + console.log(`Total de agendamentos filtrados para este médico: ${agendamentosDoMedico.length}`); + console.log("Lista completa de Agendamentos do Médico:", agendamentosDoMedico); + + //FiltrarAgendamentos(agendamentosDoMedico) + + } + }, [FiltredTodosMedicos, MedicoFiltrado]); + +const filtrarAgendamentosPorMedico = (dictAgendamentos, idMedicoFiltrado) => { + + const todasAsListasDeAgendamentos = Object.values(dictAgendamentos); + const todosOsAgendamentos = todasAsListasDeAgendamentos.flat(); + + const agendamentosFiltrados = todosOsAgendamentos.filter(agendamento => + agendamento.doctor_id === idMedicoFiltrado + ); + + return agendamentosFiltrados; +}; + const handleSearchMedicos = (term) => { setSearchTermDoctor(term); if (term.trim() === '') { setFiltredTodosMedicos([]); + setMedicoFiltrado({id:"vazio"}) + //2 FiltrarAgendamentos() return; } + if (FiltredTodosMedicos.length === 1){ + setMedicoFiltrado({...FiltredTodosMedicos[0]}) + } const filtered = ListaDeMedicos.filter(medico => medico.nomeMedico.toLowerCase().includes(term.toLowerCase()) @@ -252,8 +269,6 @@ const handleSearchMedicos = (term) => { }; - const handleClickCancel = () => setPageConsulta(false) - return (

Agendar nova consulta

@@ -306,6 +321,8 @@ const handleSearchMedicos = (term) => { className='dropdown-item' onClick={() => { setSearchTermDoctor(medico.nomeMedico); + setFiltredTodosMedicos([]); + setMedicoFiltrado(medico) }} >

{medico.nomeMedico}

From 15062ca32e2449b7783a775fbda53788b5b0c70c Mon Sep 17 00:00:00 2001 From: joao_pedro Date: Tue, 28 Oct 2025 08:18:20 -0300 Subject: [PATCH 05/12] =?UTF-8?q?filtro=20de=20m=C3=A9dico=20resolvido=20e?= =?UTF-8?q?=20mostrar=20os=20dias=20ao=20lado=20da=20data=20na=20tabela=20?= =?UTF-8?q?diaria?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AgendarConsulta/TabelaAgendamentoDia.jsx | 24 ++++++++++++++++++- src/pages/Agendamento.jsx | 19 +++++++++++++-- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx b/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx index e5c65d7..25ff773 100644 --- a/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx +++ b/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx @@ -19,6 +19,28 @@ const TabelaAgendamentoDia = ({ handleClickAgendamento, agendamentos, setShowDel setDia(ListaDiasComAgendamentos[indiceAcesso]) }, [indiceAcesso]) + const formatarDataComDia = (dataISO) => { + if (!dataISO) return ''; + + const data = new Date(dataISO); // converte para objeto Date + + // nomes dos dias da semana + const dias = [ + 'Segunda-feira', + 'Terça-feira', + 'Quarta-feira', + 'Quinta-feira', + 'Sexta-feira', + 'Sábado' + ]; + const diaSemana = dias[data.getDay()]; // 0 = Domingo, 1 = Segunda, etc. + + const dia = dataISO.split('-')[2]; + const mes = dataISO.split('-')[1]; + const ano = dataISO.split('-')[0]; + + return `${diaSemana}, ${dia}/${mes}/${ano}`; +}; return (
@@ -27,7 +49,7 @@ const TabelaAgendamentoDia = ({ handleClickAgendamento, agendamentos, setShowDel -

{Dia ? `${Dia?.split('-')[2]}/${Dia?.split('-')[1]}/${Dia?.split('-')[0]}`: ''}

+

{Dia ? formatarDataComDia(Dia) : ''}

diff --git a/src/pages/Agendamento.jsx b/src/pages/Agendamento.jsx index 505be04..e164126 100644 --- a/src/pages/Agendamento.jsx +++ b/src/pages/Agendamento.jsx @@ -45,6 +45,9 @@ const Agendamento = ({setDictInfo}) => { const [MedicoFiltrado, setMedicoFiltrado] = useState({id:"vazio"}) + const [cacheFiladeEspera, setcacheFiladeEspera] = useState([]) + + const [cacheAgendamentos, setCacheAgendamentos] = useState([]) let authHeader = getAuthorizationHeader() @@ -234,12 +237,14 @@ const deleteConsulta = (selectedPatientId) => { console.log("Lista completa de Agendamentos do Médico:", agendamentosDoMedico); //FiltrarAgendamentos(agendamentosDoMedico) + + setListaTodosAgendamentos(agendamentosDoMedico) } }, [FiltredTodosMedicos, MedicoFiltrado]); const filtrarAgendamentosPorMedico = (dictAgendamentos, idMedicoFiltrado) => { - + setCacheAgendamentos(DictAgendamentosOrganizados); const todasAsListasDeAgendamentos = Object.values(dictAgendamentos); const todosOsAgendamentos = todasAsListasDeAgendamentos.flat(); @@ -253,8 +258,16 @@ const filtrarAgendamentosPorMedico = (dictAgendamentos, idMedicoFiltrado) => { const handleSearchMedicos = (term) => { setSearchTermDoctor(term); if (term.trim() === '') { - setFiltredTodosMedicos([]); + if(MedicoFiltrado.id !== "vazio"){ + console.log("Medico escolhido, mas vai ser apagado") + console.log(cacheAgendamentos, "cache ") + setAgendamentosOrganizados(cacheAgendamentos) + } + + + setFiltredTodosMedicos([]); setMedicoFiltrado({id:"vazio"}) + //2 FiltrarAgendamentos() return; } @@ -323,6 +336,7 @@ const handleSearchMedicos = (term) => { setSearchTermDoctor(medico.nomeMedico); setFiltredTodosMedicos([]); setMedicoFiltrado(medico) + }} >

{medico.nomeMedico}

@@ -353,6 +367,7 @@ const handleSearchMedicos = (term) => { }} > Fila de espera +
From b4d5ed76a9cb9fe23ea27084bd04a007bc7a0c0a Mon Sep 17 00:00:00 2001 From: joao_pedro Date: Tue, 28 Oct 2025 08:22:32 -0300 Subject: [PATCH 06/12] =?UTF-8?q?Mudan=C3=A7a=20que=20n=C3=A3o=20foi=20no?= =?UTF-8?q?=20ultimo=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Agendamento.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pages/Agendamento.jsx b/src/pages/Agendamento.jsx index e164126..4ea03b1 100644 --- a/src/pages/Agendamento.jsx +++ b/src/pages/Agendamento.jsx @@ -245,6 +245,7 @@ const deleteConsulta = (selectedPatientId) => { const filtrarAgendamentosPorMedico = (dictAgendamentos, idMedicoFiltrado) => { setCacheAgendamentos(DictAgendamentosOrganizados); + const todasAsListasDeAgendamentos = Object.values(dictAgendamentos); const todosOsAgendamentos = todasAsListasDeAgendamentos.flat(); @@ -261,7 +262,7 @@ const handleSearchMedicos = (term) => { if(MedicoFiltrado.id !== "vazio"){ console.log("Medico escolhido, mas vai ser apagado") console.log(cacheAgendamentos, "cache ") - setAgendamentosOrganizados(cacheAgendamentos) + } From f11bf05cc0e1ab285c6b9b85eabbb9dc4bff4685 Mon Sep 17 00:00:00 2001 From: joao_pedro Date: Tue, 28 Oct 2025 11:36:35 -0300 Subject: [PATCH 07/12] =?UTF-8?q?Bot=C3=A3o=20para=20transformar=20agendam?= =?UTF-8?q?entos=20cancelados=20em=20aprovados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AgendarConsulta/CardConsulta.jsx | 19 +++- .../AgendarConsulta/TabelaAgendamentoDia.jsx | 4 +- .../TabelaAgendamentoSemana.jsx | 12 +-- .../AgendarConsulta/style/card-consulta.css | 12 ++- src/pages/Agendamento.jsx | 90 ++++++++++++++++++- 5 files changed, 125 insertions(+), 12 deletions(-) diff --git a/src/components/AgendarConsulta/CardConsulta.jsx b/src/components/AgendarConsulta/CardConsulta.jsx index f69ad29..98e2978 100644 --- a/src/components/AgendarConsulta/CardConsulta.jsx +++ b/src/components/AgendarConsulta/CardConsulta.jsx @@ -4,7 +4,7 @@ import { useAuth } from '../utils/AuthProvider'; import { useNavigate } from 'react-router-dom'; import { useMemo } from 'react'; import "./style/card-consulta.css" -const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, setDictInfo, setSelectedId} ) => { +const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, setDictInfo, setSelectedId, setShowConfirmModal} ) => { const navigate = useNavigate(); const {getAuthorizationHeader} = useAuth() @@ -75,6 +75,19 @@ const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, se > + {DadosConsulta.status === "cancelled" ? + + : + + + } +
diff --git a/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx b/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx index 25ff773..a952349 100644 --- a/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx +++ b/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx @@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react'; import CardConsulta from './CardConsulta'; import "./style/styleTabelas/tabeladia.css"; -const TabelaAgendamentoDia = ({ handleClickAgendamento, agendamentos, setShowDeleteModal, setDictInfo, setSelectedId }) => { +const TabelaAgendamentoDia = ({ handleClickAgendamento, agendamentos, setShowDeleteModal, setDictInfo, setSelectedId, setShowConfirmModal }) => { const [indiceAcesso, setIndiceAcesso] = useState(0) const [Dia, setDia] = useState() const agendamentosDoDia = agendamentos?.semana1?.segunda || []; @@ -73,7 +73,7 @@ const TabelaAgendamentoDia = ({ handleClickAgendamento, agendamentos, setShowDel

{`${horario[0]}:${horario[1]}`}

handleClickAgendamento(agendamento)}> - +
diff --git a/src/components/AgendarConsulta/TabelaAgendamentoSemana.jsx b/src/components/AgendarConsulta/TabelaAgendamentoSemana.jsx index 84958f1..8a3e9f1 100644 --- a/src/components/AgendarConsulta/TabelaAgendamentoSemana.jsx +++ b/src/components/AgendarConsulta/TabelaAgendamentoSemana.jsx @@ -6,7 +6,7 @@ import { useEffect, useState, useMemo } from 'react'; import weekOfYear from 'dayjs/plugin/weekOfYear' dayjs.extend(weekOfYear) -const TabelaAgendamentoSemana = ({ agendamentos, ListarDiasdoMes, setShowDeleteModal ,setSelectedId ,setDictInfo}) => { +const TabelaAgendamentoSemana = ({ agendamentos, ListarDiasdoMes, setShowDeleteModal ,setSelectedId ,setDictInfo, setShowConfirmModal}) => { // Armazena o objeto COMPLETO das semanas organizadas const [semanasOrganizadas, setSemanasOrganizadas] = useState({}); @@ -178,31 +178,31 @@ const TabelaAgendamentoSemana = ({ agendamentos, ListarDiasdoMes, setShowDeleteM {/* Mapeamento de COLUNAS (dias) */} {semanaParaRenderizar?.segunda[indiceLinha] - ? + ? : null } {semanaParaRenderizar.terça[indiceLinha] - ? + ? : null } {semanaParaRenderizar.quarta[indiceLinha] - ? + ? : null } {semanaParaRenderizar.quinta[indiceLinha] - ? + ? : null } {semanaParaRenderizar.sexta[indiceLinha] - ? + ? : null } diff --git a/src/components/AgendarConsulta/style/card-consulta.css b/src/components/AgendarConsulta/style/card-consulta.css index 749fb21..29fb475 100644 --- a/src/components/AgendarConsulta/style/card-consulta.css +++ b/src/components/AgendarConsulta/style/card-consulta.css @@ -50,7 +50,7 @@ /* 6. Estilo de hover para o botão de exclusão */ .btn-delete-custom-style:hover { background-color: #c82333; /* Um vermelho um pouco mais escuro para o hover */ - filter: brightness(90%); /* Alternativa: escurecer um pouco mais */ + } /* 7. Estilos para os ícones dentro dos botões (já está no JSX com fs-4) */ @@ -58,4 +58,14 @@ .action-button .bi { /* Exemplo: se precisar de um ajuste fino além do fs-4 */ /* font-size: 1.5rem; */ +} + +.btn-confirm-style{ + background-color: #5ce687; + +} + +.btn-confirm-style:hover{ + + } \ No newline at end of file diff --git a/src/pages/Agendamento.jsx b/src/pages/Agendamento.jsx index 4ea03b1..5a16904 100644 --- a/src/pages/Agendamento.jsx +++ b/src/pages/Agendamento.jsx @@ -49,6 +49,8 @@ const Agendamento = ({setDictInfo}) => { const [cacheAgendamentos, setCacheAgendamentos] = useState([]) + const [showConfirmModal, setShowConfirmModal] = useState(false) + let authHeader = getAuthorizationHeader() const cacheMedicos = {}; @@ -159,6 +161,30 @@ const deleteConsulta = (selectedPatientId) => { }); + var requestOptions = { + method: 'PATCH', + headers: myHeaders, + body: raw, + redirect: 'follow' + }; + + fetch(`https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/appointments?id=eq.${selectedPatientId}`, requestOptions) + .then(response => {if(response.status !== 200)(console.log(response))}) + .then(result => console.log(result)) + .catch(error => console.log('error', error)); +} + +const confirmConsulta = (selectedPatientId) => { + var myHeaders = new Headers(); + myHeaders.append("Content-Type", "application/json"); + myHeaders.append('apikey', API_KEY) + myHeaders.append("authorization", authHeader) + + + var raw = JSON.stringify({ "status":"confirmed" + }); + + var requestOptions = { method: 'PATCH', headers: myHeaders, @@ -398,8 +424,8 @@ const handleSearchMedicos = (term) => { {/* Componentes de Tabela - Adicionado props de delete da main */} - {tabela === "diario" && } - {tabela === 'semanal' && } + {tabela === "diario" && } + {tabela === 'semanal' && } {tabela === 'mensal' && }
@@ -527,6 +553,66 @@ const handleSearchMedicos = (term) => { )} + + + + + {showConfirmModal &&( +
+ e.target.classList.contains("modal") && setShowDeleteModal(false) + } + > +
+
+ +
+
+ Confirmação de edição +
+ +
+ +
+

+ Tem certeza que deseja ? +

+
+ +
+ + + + + +
+
+
+
) + + + + } + ) From ede2be7edddb135b2045dda04a3ee71d8401bce1 Mon Sep 17 00:00:00 2001 From: joao_pedro Date: Tue, 28 Oct 2025 15:42:21 -0300 Subject: [PATCH 08/12] =?UTF-8?q?Salvar=20pequenas=20altera=C3=A7=C3=B5es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AgendarConsulta/CardConsulta.jsx | 13 +++++++++++-- src/components/AgendarConsulta/FormNovaConsulta.jsx | 8 ++++++-- .../AgendarConsulta/TabelaAgendamentoMes.jsx | 8 ++++---- .../AgendarConsulta/TabelaAgendamentoSemana.jsx | 10 +++++----- .../AgendarConsulta/style/card-consulta.css | 4 ++++ .../style/styleTabelas/tabeladia.css | 2 ++ .../style/styleTabelas/tabelames.css | 4 ++-- .../style/styleTabelas/tabelasemana.css | 11 +++++++++-- src/pages/Agendamento.jsx | 5 +++-- src/pages/AgendamentoEditPage.jsx | 6 ++---- 10 files changed, 48 insertions(+), 23 deletions(-) diff --git a/src/components/AgendarConsulta/CardConsulta.jsx b/src/components/AgendarConsulta/CardConsulta.jsx index 98e2978..257966d 100644 --- a/src/components/AgendarConsulta/CardConsulta.jsx +++ b/src/components/AgendarConsulta/CardConsulta.jsx @@ -12,6 +12,9 @@ const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, se const [Paciente, setPaciente] = useState() const [Medico, setMedico] = useState() + console.log(DadosConsulta.chief_complaint) + + const ids = useMemo(() => { return { doctor_id: DadosConsulta?.doctor_id, @@ -49,6 +52,7 @@ const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, se return (
+ {DadosConsulta.id? @@ -56,12 +60,16 @@ const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, se
-

{DadosConsulta.horario} {nameArrayMedico && nameArrayMedico.length > 0 ? nameArrayMedico[0] : ''} {nameArrayMedico && nameArrayMedico.length > 1 ? ` ${nameArrayMedico[1]}` : ''}

+

Medico:{DadosConsulta.horario} {nameArrayMedico && nameArrayMedico.length > 0 ? nameArrayMedico[0] : ''} {nameArrayMedico && nameArrayMedico.length > 1 ? ` ${nameArrayMedico[1]}` : ''}

-

{nameArrayPaciente && nameArrayPaciente.length > 0 ? nameArrayPaciente[0] : ''} {nameArrayPaciente && nameArrayPaciente.length > 1 ? ` ${nameArrayPaciente[1]}` : ''}- {}

+

Paciente: {nameArrayPaciente && nameArrayPaciente.length > 0 ? nameArrayPaciente[0] : ''} {nameArrayPaciente && nameArrayPaciente.length > 1 ? ` ${nameArrayPaciente[1]}` : ''}- {} + + {DadosConsulta.chief_complaint && `Reclamação: ${DadosConsulta.chief_complaint}`} + +

@@ -94,6 +102,7 @@ const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, se console.log(DadosConsulta.id) setSelectedId(DadosConsulta.id); setShowDeleteModal(true); + }} > diff --git a/src/components/AgendarConsulta/FormNovaConsulta.jsx b/src/components/AgendarConsulta/FormNovaConsulta.jsx index 36cee3e..692c7e0 100644 --- a/src/components/AgendarConsulta/FormNovaConsulta.jsx +++ b/src/components/AgendarConsulta/FormNovaConsulta.jsx @@ -87,7 +87,11 @@ const [isDropdownOpen, setIsDropdownOpen] = useState(false); } } - + // Se estiver na página de edição esse useEffect pega o horario de inicio para coloca-lo no horarioInicio + useEffect(() => { + console.log("Horario", ) + setHorarioInicio(formatarHora(agendamento.scheduled_at)) + }, []) useEffect(() => { @@ -287,7 +291,7 @@ const handleSubmit = (e) => {
- +
diff --git a/src/components/AgendarConsulta/TabelaAgendamentoMes.jsx b/src/components/AgendarConsulta/TabelaAgendamentoMes.jsx index 92cbea7..b862ea1 100644 --- a/src/components/AgendarConsulta/TabelaAgendamentoMes.jsx +++ b/src/components/AgendarConsulta/TabelaAgendamentoMes.jsx @@ -6,7 +6,7 @@ import "./style/styleTabelas/tabelames.css"; import { useEffect, useState } from 'react'; import { useMemo } from 'react'; -const TabelaAgendamentoMes = ({ ListarDiasdoMes, agendamentos, setShowDeleteModal, setSelectedId ,setDictInfo }) => { +const TabelaAgendamentoMes = ({ ListarDiasdoMes, agendamentos, setShowDeleteModal, setSelectedId ,setDictInfo, setShowConfirmModal }) => { const dataHoje = dayjs(); const AnoAtual = dataHoje.year(); @@ -202,9 +202,9 @@ const TabelaAgendamentoMes = ({ ListarDiasdoMes, agendamentos, setShowDeleteModa { semana && typeof semana === "object" && Object.keys(semana).map((dia) => ( - - - + + + {semana[dia].length > 3 ? (

{` +${semana[dia].length - 2}`}

diff --git a/src/components/AgendarConsulta/TabelaAgendamentoSemana.jsx b/src/components/AgendarConsulta/TabelaAgendamentoSemana.jsx index 8a3e9f1..ce49a64 100644 --- a/src/components/AgendarConsulta/TabelaAgendamentoSemana.jsx +++ b/src/components/AgendarConsulta/TabelaAgendamentoSemana.jsx @@ -178,31 +178,31 @@ const TabelaAgendamentoSemana = ({ agendamentos, ListarDiasdoMes, setShowDeleteM {/* Mapeamento de COLUNAS (dias) */} {semanaParaRenderizar?.segunda[indiceLinha] - ? + ? : null } {semanaParaRenderizar.terça[indiceLinha] - ? + ? : null } {semanaParaRenderizar.quarta[indiceLinha] - ? + ? : null } {semanaParaRenderizar.quinta[indiceLinha] - ? + ? : null } {semanaParaRenderizar.sexta[indiceLinha] - ? + ? : null } diff --git a/src/components/AgendarConsulta/style/card-consulta.css b/src/components/AgendarConsulta/style/card-consulta.css index 29fb475..85a9e5d 100644 --- a/src/components/AgendarConsulta/style/card-consulta.css +++ b/src/components/AgendarConsulta/style/card-consulta.css @@ -68,4 +68,8 @@ .btn-confirm-style:hover{ +} + +.container-cardconsulta{ + width: 40rem; } \ No newline at end of file diff --git a/src/components/AgendarConsulta/style/styleTabelas/tabeladia.css b/src/components/AgendarConsulta/style/styleTabelas/tabeladia.css index 6754350..eb74bd7 100644 --- a/src/components/AgendarConsulta/style/styleTabelas/tabeladia.css +++ b/src/components/AgendarConsulta/style/styleTabelas/tabeladia.css @@ -6,6 +6,8 @@ overflow: hidden; /* mantém o arredondado */ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); border: 4px solid #4a90e2; /* borda azul, altere para a cor desejada */ + + } /* 1. Estilização do TD (Container) */ .coluna-horario { diff --git a/src/components/AgendarConsulta/style/styleTabelas/tabelames.css b/src/components/AgendarConsulta/style/styleTabelas/tabelames.css index 707823c..59b76e3 100644 --- a/src/components/AgendarConsulta/style/styleTabelas/tabelames.css +++ b/src/components/AgendarConsulta/style/styleTabelas/tabelames.css @@ -9,7 +9,7 @@ } /* Células da tabela */ -.tabelamensal th, .tabelamensal td { +.tabelamensal th { padding: 9px; text-align: left; border: 1px solid #e0e0e0; @@ -73,7 +73,7 @@ border: 4px solid #4a90e2; /* borda azul, altere para a cor desejada */ } -.tabelamensal th, .tabelamensal td { +.tabelamensal th { padding: 9px; text-align: left; border: 1px solid #e0e0e0; diff --git a/src/components/AgendarConsulta/style/styleTabelas/tabelasemana.css b/src/components/AgendarConsulta/style/styleTabelas/tabelasemana.css index fbedcf1..aa4bdf2 100644 --- a/src/components/AgendarConsulta/style/styleTabelas/tabelasemana.css +++ b/src/components/AgendarConsulta/style/styleTabelas/tabelasemana.css @@ -6,6 +6,7 @@ overflow: hidden; /* mantém o arredondado */ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); border: 4px solid #4a90e2; /* borda azul, altere para a cor desejada */ + } /* Células da tabela */ @@ -67,10 +68,10 @@ .tabelasemanal tr:hover { background-color: #f1f1f1 !important; } - +/* tr{ width: 1000px; -} +}*/ html[data-bs-theme="dark"] .tabelasemanal { border: 4px solid #333; @@ -110,4 +111,10 @@ html[data-bs-theme="dark"] .tabelasemanal .cardconsulta { color: #e0e0e0; box-shadow: 0 1px 3px rgba(0,0,0,0.3); border-left: 5px solid #333; +} + + + +.tabelasemanal td{ + width: 50rem; } \ No newline at end of file diff --git a/src/pages/Agendamento.jsx b/src/pages/Agendamento.jsx index 5a16904..d201dcc 100644 --- a/src/pages/Agendamento.jsx +++ b/src/pages/Agendamento.jsx @@ -45,12 +45,13 @@ const Agendamento = ({setDictInfo}) => { const [MedicoFiltrado, setMedicoFiltrado] = useState({id:"vazio"}) - const [cacheFiladeEspera, setcacheFiladeEspera] = useState([]) const [cacheAgendamentos, setCacheAgendamentos] = useState([]) const [showConfirmModal, setShowConfirmModal] = useState(false) + + let authHeader = getAuthorizationHeader() const cacheMedicos = {}; @@ -426,7 +427,7 @@ const handleSearchMedicos = (term) => { {/* Componentes de Tabela - Adicionado props de delete da main */} {tabela === "diario" && } {tabela === 'semanal' && } - {tabela === 'mensal' && } + {tabela === 'mensal' && }
) diff --git a/src/pages/AgendamentoEditPage.jsx b/src/pages/AgendamentoEditPage.jsx index c3b36d4..9cfc0cf 100644 --- a/src/pages/AgendamentoEditPage.jsx +++ b/src/pages/AgendamentoEditPage.jsx @@ -13,8 +13,7 @@ const AgendamentoEditPage = ({setDictInfo, DictInfo}) => { //let DataAtual = dayjs() const {getAuthorizationHeader} = useAuth() const params = useParams() - const [PatientToPatch, setPatientToPatch] = useState({}) - + let id = params.id console.log(DictInfo, "DENTRO DO EDITAR") @@ -22,8 +21,7 @@ const AgendamentoEditPage = ({setDictInfo, DictInfo}) => { //console.log(DictInfo, 'aqui') useEffect(() => { - setDictInfo({...DictInfo?.Infos,...DictInfo?.agendamento}) - + setDictInfo({...DictInfo, dataAtendimento:DictInfo.scheduled_at.split("T")[0]}) const ColherInfoUsuario =async () => { const result = await UserInfos(authHeader) From dc9ae674fc6beec4a64a10ec10b88f1d2fb8cee8 Mon Sep 17 00:00:00 2001 From: joao_pedro Date: Tue, 28 Oct 2025 15:45:07 -0300 Subject: [PATCH 09/12] =?UTF-8?q?Altera=C3=A7=C3=B5es=20que=20n=C3=A3o=20f?= =?UTF-8?q?oram=20mandadas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AgendarConsulta/CardConsulta.jsx | 2 ++ .../AgendarConsulta/style/styleTabelas/tabelames.css | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/AgendarConsulta/CardConsulta.jsx b/src/components/AgendarConsulta/CardConsulta.jsx index 257966d..5fd6721 100644 --- a/src/components/AgendarConsulta/CardConsulta.jsx +++ b/src/components/AgendarConsulta/CardConsulta.jsx @@ -119,6 +119,8 @@ const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, se } + + ) diff --git a/src/components/AgendarConsulta/style/styleTabelas/tabelames.css b/src/components/AgendarConsulta/style/styleTabelas/tabelames.css index 59b76e3..707823c 100644 --- a/src/components/AgendarConsulta/style/styleTabelas/tabelames.css +++ b/src/components/AgendarConsulta/style/styleTabelas/tabelames.css @@ -9,7 +9,7 @@ } /* Células da tabela */ -.tabelamensal th { +.tabelamensal th, .tabelamensal td { padding: 9px; text-align: left; border: 1px solid #e0e0e0; @@ -73,7 +73,7 @@ border: 4px solid #4a90e2; /* borda azul, altere para a cor desejada */ } -.tabelamensal th { +.tabelamensal th, .tabelamensal td { padding: 9px; text-align: left; border: 1px solid #e0e0e0; From dbfc0de85dc010858c3146bc02b63a24ff41f4d1 Mon Sep 17 00:00:00 2001 From: joao_pedro Date: Wed, 29 Oct 2025 10:45:34 -0300 Subject: [PATCH 10/12] =?UTF-8?q?Come=C3=A7o=20da=20melhoria=20para=20troc?= =?UTF-8?q?a=20de=20cores?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AgendarConsulta/CardConsulta.jsx | 12 +++++++--- .../AgendarConsulta/TabelaAgendamentoDia.jsx | 6 ++--- .../AgendarConsulta/style/card-consulta.css | 4 ++++ src/pages/Agendamento.jsx | 24 ++++++++++++------- 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/src/components/AgendarConsulta/CardConsulta.jsx b/src/components/AgendarConsulta/CardConsulta.jsx index 5fd6721..3c002cd 100644 --- a/src/components/AgendarConsulta/CardConsulta.jsx +++ b/src/components/AgendarConsulta/CardConsulta.jsx @@ -4,9 +4,15 @@ import { useAuth } from '../utils/AuthProvider'; import { useNavigate } from 'react-router-dom'; import { useMemo } from 'react'; import "./style/card-consulta.css" -const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, setDictInfo, setSelectedId, setShowConfirmModal} ) => { +const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, setDictInfo, setSelectedId, setShowConfirmModal, corModal, selectedID} ) => { const navigate = useNavigate(); + console.log("Testando cor modal", corModal) + + if(selectedID === DadosConsulta.id){ + console.log("É igual, man") + } + const {getAuthorizationHeader} = useAuth() const authHeader = getAuthorizationHeader() const [Paciente, setPaciente] = useState() @@ -51,12 +57,12 @@ const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, se console.log(DadosConsulta.status) return ( -
+
{DadosConsulta.id? -
+
diff --git a/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx b/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx index a952349..f242d39 100644 --- a/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx +++ b/src/components/AgendarConsulta/TabelaAgendamentoDia.jsx @@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react'; import CardConsulta from './CardConsulta'; import "./style/styleTabelas/tabeladia.css"; -const TabelaAgendamentoDia = ({ handleClickAgendamento, agendamentos, setShowDeleteModal, setDictInfo, setSelectedId, setShowConfirmModal }) => { +const TabelaAgendamentoDia = ({ handleClickAgendamento, agendamentos, setShowDeleteModal, setDictInfo,selectedID, setSelectedId, setShowConfirmModal, corModal }) => { const [indiceAcesso, setIndiceAcesso] = useState(0) const [Dia, setDia] = useState() const agendamentosDoDia = agendamentos?.semana1?.segunda || []; @@ -10,8 +10,6 @@ const TabelaAgendamentoDia = ({ handleClickAgendamento, agendamentos, setShowDel let ListaDiasComAgendamentos = Object.keys(agendamentos) - console.log(agendamentos) - //console.log(Dia, "hshdhshhsdhs") @@ -73,7 +71,7 @@ const TabelaAgendamentoDia = ({ handleClickAgendamento, agendamentos, setShowDel

{`${horario[0]}:${horario[1]}`}

handleClickAgendamento(agendamento)}> - +
diff --git a/src/components/AgendarConsulta/style/card-consulta.css b/src/components/AgendarConsulta/style/card-consulta.css index 85a9e5d..536e4e1 100644 --- a/src/components/AgendarConsulta/style/card-consulta.css +++ b/src/components/AgendarConsulta/style/card-consulta.css @@ -72,4 +72,8 @@ .container-cardconsulta{ width: 40rem; +} + +.card-verde{ + background-color: #343a40; } \ No newline at end of file diff --git a/src/pages/Agendamento.jsx b/src/pages/Agendamento.jsx index d201dcc..a45268c 100644 --- a/src/pages/Agendamento.jsx +++ b/src/pages/Agendamento.jsx @@ -50,7 +50,7 @@ const Agendamento = ({setDictInfo}) => { const [showConfirmModal, setShowConfirmModal] = useState(false) - + const [corModal, setCorModal] = useState("") let authHeader = getAuthorizationHeader() @@ -425,9 +425,9 @@ const handleSearchMedicos = (term) => {
{/* Componentes de Tabela - Adicionado props de delete da main */} - {tabela === "diario" && } - {tabela === 'semanal' && } - {tabela === 'mensal' && } + {tabela === "diario" && } + {tabela === 'semanal' && } + {tabela === 'mensal' && }
) @@ -526,8 +526,12 @@ const handleSearchMedicos = (term) => {

- Tem certeza que deseja excluir este agendamento? + Tem certeza que deseja excluir este agendamento?

+
+ + +
@@ -582,7 +586,7 @@ const handleSearchMedicos = (term) => {

- Tem certeza que deseja ? + Tem certeza que deseja retirar o cancelamento ?

@@ -591,7 +595,7 @@ const handleSearchMedicos = (term) => { @@ -600,7 +604,11 @@ const handleSearchMedicos = (term) => { - {DadosConsulta.status === "cancelled" ? + {DadosConsulta.status === "cancelled" || coresConsultas[indice_cor] === "cancelled" ? +
@@ -515,7 +524,7 @@ const handleSearchMedicos = (term) => {
- Confirmação de Exclusão + Confirmação de Cancelamento