From f11bf05cc0e1ab285c6b9b85eabbb9dc4bff4685 Mon Sep 17 00:00:00 2001 From: joao_pedro Date: Tue, 28 Oct 2025 11:36:35 -0300 Subject: [PATCH] =?UTF-8?q?Bot=C3=A3o=20para=20transformar=20agendamentos?= =?UTF-8?q?=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 ? +

+
+ +
+ + + + + +
+
+
+
) + + + + } + )