From 7db8d38bb00cad3089b1a86a2d2502102d2f7962 Mon Sep 17 00:00:00 2001 From: Eduarda-SS <137419071+Eduarda-SS@users.noreply.github.com> Date: Wed, 26 Nov 2025 17:05:47 -0300 Subject: [PATCH] =?UTF-8?q?Reorganiza=C3=A7=C3=A3o=20do=20CSS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../styleMedico => DELETE}/Agendamento.css | 0 .../css/styleMedico => DELETE}/FilaEspera.css | 0 {src/_assets/css => DELETE}/LaudoStyle.css | 0 .../TrocarPerfis.css | 1 - .../agendamento => DELETE}/TrocardePerfis.css | 0 src/App.js | 10 +- src/_assets/css/{ => components}/Header.css | 0 .../Sidebar/ToggleSidebar.css} | 0 .../TrocarPerfis.css} | 0 .../VideoChamada}/BotaoVideoChamada.css | 0 .../VideoChamada}/BotaoVideoPaciente.css | 0 .../acessibilidade/BotaoAcessibilidade.css} | 0 .../agendamento/CardConsulta.css} | 1 + .../agendamento/FormAgendamento.css} | 0 .../tabelas/TabelaAgendamentoDia.css} | 0 .../tabelas/TabelaAgendamentoMes.css} | 0 .../tabelas/TabelaAgendamentoSemana.css} | 0 .../medico/FormCadastroMedico.css} | 2 + .../paciente/CardConsultaPaciente.css} | 0 .../paciente/FormCadastroPaciente.css} | 2 + .../admin/DashboardUsuarios.css} | 1 + .../admin/PainelAdmin.css} | 2 + .../agendamento}/Agendamento.css | 0 .../agendamento}/FilaEspera.css | 0 .../financeiro/DashboardFinanceiro.css} | 0 .../Inicio.css => pages/geral/Dashboard.css} | 2 + .../geral/Inicio.css} | 0 .../geral/PerfilUsuario.css} | 0 .../medico/CadastroRelatorio.css} | 2 + .../chat.css => pages/medico/Chat.css} | 0 .../medico/FormRelatorio.css} | 0 .../medico}/HorariosDisponibilidade.css | 0 .../medico/RelatorioEProntuario.css} | 2 + .../paciente/DashboardPaciente.css} | 2 + .../secretaria/CadastroMedico.css} | 2 + .../secretaria/CadastroPaciente.css} | 2 + .../secretaria/DisponibilidadesMedico.css} | 2 + .../secretaria/TabelaMedicos.css} | 0 .../secretaria/TabelaPacientes.css} | 0 .../utils/Functions-Endpoints/General.js | 3 +- .../utils/Functions-Endpoints/Patient.js | 31 +-- src/components/Header/Header.jsx | 4 +- src/components/Sidebar/Sidebar.jsx | 12 +- src/components/Sidebar/ToggleSidebar.jsx | 4 +- src/components/TrocarPerfis.jsx | 3 +- .../VideoChamada/BotaoVideoChamada.jsx | 4 +- .../VideoChamada/BotaoVideoPaciente.jsx | 4 +- .../acessibilidade/BotaoAcessibilidade.jsx | 4 +- .../acessibilidade/VlibrasWidget.jsx | 4 +- src/components/agendamento/CardConsulta.jsx | 5 +- ...rmNovaConsulta.jsx => FormAgendamento.jsx} | 5 +- .../agendamento/TabelaAgendamentoDia.jsx | 3 +- .../agendamento/TabelaAgendamentoMes.jsx | 5 +- .../agendamento/TabelaAgendamentoSemana.jsx | 6 +- src/components/medico/FormCadastroMedico.jsx | 9 +- .../medico/FormExcecaoDisponibilidade.jsx | 5 +- src/components/medico/FormRelatorio.jsx | 2 +- .../medico/HorariosDisponibilidade.jsx | 4 +- src/data/sidebar-items-medico.json | 9 +- src/pages/admin/DashboardUsuarios.jsx | 3 +- src/pages/admin/PainelAdmin.jsx | 2 +- src/pages/financeiro/DashboardFinanceiro.jsx | 3 +- .../{usuario => geral}/CadastrarUsuario.jsx | 0 src/pages/{usuario => geral}/Inicio.jsx | 3 +- src/pages/{usuario => geral}/Login.jsx | 0 .../{usuario => geral}/PerfilUsuario.jsx | 3 +- .../{usuario => geral}/RecuperarConta.jsx | 0 src/pages/{usuario => geral}/Support.jsx | 0 src/pages/medico/CadastroAgendamento.jsx | 6 +- src/pages/medico/CadastroRelatorio.jsx | 5 +- src/pages/medico/Chat.jsx | 4 +- src/pages/medico/DashboardMedico.jsx | 3 +- src/pages/medico/EditarAgendamento.jsx | 2 +- .../medico/ExcecoesDisponibilidadeMedico.jsx | 249 ++++++++++++++++++ src/pages/medico/FormRelatorio.jsx | 4 +- src/pages/medico/Prontuario.jsx | 3 +- src/pages/medico/Relatorio.jsx | 3 +- src/pages/paciente/DashboardPaciente.jsx | 3 +- src/pages/paciente/ListaConsulta.jsx | 6 +- src/pages/secretaria/CadastroAgendamento.jsx | 2 +- src/pages/secretaria/CadastroLaudos.jsx | 3 +- src/pages/secretaria/CadastroMedico.jsx | 4 +- src/pages/secretaria/CadastroPaciente.jsx | 4 +- src/pages/secretaria/Dashboard.jsx | 3 +- .../secretaria/DisponibilidadesMedico.jsx | 2 +- src/pages/secretaria/EditarAgendamento.jsx | 2 +- .../secretaria/ExcecoesDisponibilidade.jsx | 62 ++++- src/pages/secretaria/ListaAgendamentos.jsx | 8 +- src/pages/secretaria/ListaMedicos.jsx | 3 +- src/pages/secretaria/ListaPacientes.jsx | 4 +- src/perfis/Perfil_adm/PerfilAdmin.jsx | 2 +- src/perfis/Perfil_medico/PerfilMedico.jsx | 2 + 92 files changed, 419 insertions(+), 143 deletions(-) rename {src/_assets/css/styleMedico => DELETE}/Agendamento.css (100%) rename {src/_assets/css/styleMedico => DELETE}/FilaEspera.css (100%) rename {src/_assets/css => DELETE}/LaudoStyle.css (100%) rename src/_assets/css/style/TrocardePerfis.css => DELETE/TrocarPerfis.css (96%) rename {src/_assets/css/agendamento => DELETE}/TrocardePerfis.css (100%) rename src/_assets/css/{ => components}/Header.css (100%) rename src/_assets/css/{Toggle.css => components/Sidebar/ToggleSidebar.css} (100%) rename src/_assets/css/{TrocardePerfis.css => components/TrocarPerfis.css} (100%) rename src/_assets/css/{ => components/VideoChamada}/BotaoVideoChamada.css (100%) rename src/_assets/css/{ => components/VideoChamada}/BotaoVideoPaciente.css (100%) rename src/_assets/css/{botaoacessibilidade.css => components/acessibilidade/BotaoAcessibilidade.css} (100%) rename src/_assets/css/{agendamento/card-consulta.css => components/agendamento/CardConsulta.css} (99%) rename src/_assets/css/{agendamento/formagendamentos.css => components/agendamento/FormAgendamento.css} (100%) rename src/_assets/css/{agendamento/tabelas/tabeladia.css => components/agendamento/tabelas/TabelaAgendamentoDia.css} (100%) rename src/_assets/css/{agendamento/tabelas/tabelames.css => components/agendamento/tabelas/TabelaAgendamentoMes.css} (100%) rename src/_assets/css/{agendamento/tabelas/tabelasemana.css => components/agendamento/tabelas/TabelaAgendamentoSemana.css} (100%) rename src/_assets/css/{doctor/DoctorForm.css => components/medico/FormCadastroMedico.css} (99%) rename src/_assets/css/{style.css => components/paciente/CardConsultaPaciente.css} (100%) rename src/_assets/css/{PatientForm.css => components/paciente/FormCadastroPaciente.css} (99%) rename src/_assets/css/{gestao.css => pages/admin/DashboardUsuarios.css} (99%) rename src/_assets/css/{painel.css => pages/admin/PainelAdmin.css} (99%) rename src/_assets/css/{style => pages/agendamento}/Agendamento.css (100%) rename src/_assets/css/{style => pages/agendamento}/FilaEspera.css (100%) rename src/_assets/css/{style/FinanceiroDashboard.css => pages/financeiro/DashboardFinanceiro.css} (100%) rename src/_assets/css/{style/Inicio.css => pages/geral/Dashboard.css} (99%) rename src/_assets/css/{style/LandingPage.css => pages/geral/Inicio.css} (100%) rename src/_assets/css/{style/ProfilePage.css => pages/geral/PerfilUsuario.css} (100%) rename src/_assets/css/{styleMedico/DoctorRelatorioManager.css => pages/medico/CadastroRelatorio.css} (93%) rename src/_assets/css/{styleMedico/chat.css => pages/medico/Chat.css} (100%) rename src/_assets/css/{styleMedico/FormNovoRelatorio.css => pages/medico/FormRelatorio.css} (100%) rename src/_assets/css/{doctor => pages/medico}/HorariosDisponibilidade.css (100%) rename src/_assets/css/{styleMedico/geral.css => pages/medico/RelatorioEProntuario.css} (99%) rename src/_assets/css/{style/inicioPaciente.css => pages/paciente/DashboardPaciente.css} (99%) rename src/_assets/css/{style/DoctorCadastroManager.css => pages/secretaria/CadastroMedico.css} (99%) rename src/_assets/css/{style/PatientCadastroManager.css => pages/secretaria/CadastroPaciente.css} (99%) rename src/_assets/css/{style/DisponibilidadesDoctorPage.css => pages/secretaria/DisponibilidadesMedico.css} (99%) rename src/_assets/css/{style/TableDoctor.css => pages/secretaria/TabelaMedicos.css} (100%) rename src/_assets/css/{style/TablePaciente.css => pages/secretaria/TabelaPacientes.css} (100%) rename src/components/agendamento/{FormNovaConsulta.jsx => FormAgendamento.jsx} (99%) rename src/pages/{usuario => geral}/CadastrarUsuario.jsx (100%) rename src/pages/{usuario => geral}/Inicio.jsx (94%) rename src/pages/{usuario => geral}/Login.jsx (100%) rename src/pages/{usuario => geral}/PerfilUsuario.jsx (99%) rename src/pages/{usuario => geral}/RecuperarConta.jsx (100%) rename src/pages/{usuario => geral}/Support.jsx (100%) create mode 100644 src/pages/medico/ExcecoesDisponibilidadeMedico.jsx diff --git a/src/_assets/css/styleMedico/Agendamento.css b/DELETE/Agendamento.css similarity index 100% rename from src/_assets/css/styleMedico/Agendamento.css rename to DELETE/Agendamento.css diff --git a/src/_assets/css/styleMedico/FilaEspera.css b/DELETE/FilaEspera.css similarity index 100% rename from src/_assets/css/styleMedico/FilaEspera.css rename to DELETE/FilaEspera.css diff --git a/src/_assets/css/LaudoStyle.css b/DELETE/LaudoStyle.css similarity index 100% rename from src/_assets/css/LaudoStyle.css rename to DELETE/LaudoStyle.css diff --git a/src/_assets/css/style/TrocardePerfis.css b/DELETE/TrocarPerfis.css similarity index 96% rename from src/_assets/css/style/TrocardePerfis.css rename to DELETE/TrocarPerfis.css index 29900a4..e8e5fea 100644 --- a/src/_assets/css/style/TrocardePerfis.css +++ b/DELETE/TrocarPerfis.css @@ -1,6 +1,5 @@ /* TrocardePerfis.css */ .container-perfis { - /* certifique-se de que este arquivo esteja sendo importado corretamente */ position: relative; /* evita sobrescrever posição do layout pai */ display: flex; flex-direction: column; diff --git a/src/_assets/css/agendamento/TrocardePerfis.css b/DELETE/TrocardePerfis.css similarity index 100% rename from src/_assets/css/agendamento/TrocardePerfis.css rename to DELETE/TrocardePerfis.css diff --git a/src/App.js b/src/App.js index 9f32504..99ac1ec 100644 --- a/src/App.js +++ b/src/App.js @@ -3,10 +3,10 @@ import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; // Suas páginas -import Login from "./pages/usuario/Login.jsx"; -import Register from "./pages/usuario/CadastrarUsuario.jsx"; -import Forgot from "./pages/usuario/RecuperarConta.jsx"; -import LandingPage from './pages/usuario/Inicio.jsx'; +import Login from "./pages/geral/Login.jsx"; +import Register from "./pages/geral/CadastrarUsuario.jsx"; +import Forgot from "./pages/geral/RecuperarConta.jsx"; +import LandingPage from './pages/geral/Inicio.jsx'; import PerfilSecretaria from "./perfis/perfil_secretaria/PerfilSecretaria.jsx" import PerfilFinanceiro from "./perfis/perfil_financeiro/PerfilFinanceiro.jsx"; @@ -15,7 +15,7 @@ import PerfilMedico from "./perfis/Perfil_medico/PerfilMedico.jsx"; import PerfilPaciente from "./perfis/Perfil_paciente/PerfilPaciente.jsx" // COMBINADO: Importações de ambas as versões -import ProfilePage from "./pages/usuario/PerfilUsuario.jsx"; +import ProfilePage from "./pages/geral/PerfilUsuario.jsx"; import Header from "./components/Header/Header.jsx"; // Componentes globais de acessibilidade diff --git a/src/_assets/css/Header.css b/src/_assets/css/components/Header.css similarity index 100% rename from src/_assets/css/Header.css rename to src/_assets/css/components/Header.css diff --git a/src/_assets/css/Toggle.css b/src/_assets/css/components/Sidebar/ToggleSidebar.css similarity index 100% rename from src/_assets/css/Toggle.css rename to src/_assets/css/components/Sidebar/ToggleSidebar.css diff --git a/src/_assets/css/TrocardePerfis.css b/src/_assets/css/components/TrocarPerfis.css similarity index 100% rename from src/_assets/css/TrocardePerfis.css rename to src/_assets/css/components/TrocarPerfis.css diff --git a/src/_assets/css/BotaoVideoChamada.css b/src/_assets/css/components/VideoChamada/BotaoVideoChamada.css similarity index 100% rename from src/_assets/css/BotaoVideoChamada.css rename to src/_assets/css/components/VideoChamada/BotaoVideoChamada.css diff --git a/src/_assets/css/BotaoVideoPaciente.css b/src/_assets/css/components/VideoChamada/BotaoVideoPaciente.css similarity index 100% rename from src/_assets/css/BotaoVideoPaciente.css rename to src/_assets/css/components/VideoChamada/BotaoVideoPaciente.css diff --git a/src/_assets/css/botaoacessibilidade.css b/src/_assets/css/components/acessibilidade/BotaoAcessibilidade.css similarity index 100% rename from src/_assets/css/botaoacessibilidade.css rename to src/_assets/css/components/acessibilidade/BotaoAcessibilidade.css diff --git a/src/_assets/css/agendamento/card-consulta.css b/src/_assets/css/components/agendamento/CardConsulta.css similarity index 99% rename from src/_assets/css/agendamento/card-consulta.css rename to src/_assets/css/components/agendamento/CardConsulta.css index 34d8dea..4be1d8b 100644 --- a/src/_assets/css/agendamento/card-consulta.css +++ b/src/_assets/css/components/agendamento/CardConsulta.css @@ -1,3 +1,4 @@ +/* card-consulta.css */ .actions-container { display: flex; gap: 8px; diff --git a/src/_assets/css/agendamento/formagendamentos.css b/src/_assets/css/components/agendamento/FormAgendamento.css similarity index 100% rename from src/_assets/css/agendamento/formagendamentos.css rename to src/_assets/css/components/agendamento/FormAgendamento.css diff --git a/src/_assets/css/agendamento/tabelas/tabeladia.css b/src/_assets/css/components/agendamento/tabelas/TabelaAgendamentoDia.css similarity index 100% rename from src/_assets/css/agendamento/tabelas/tabeladia.css rename to src/_assets/css/components/agendamento/tabelas/TabelaAgendamentoDia.css diff --git a/src/_assets/css/agendamento/tabelas/tabelames.css b/src/_assets/css/components/agendamento/tabelas/TabelaAgendamentoMes.css similarity index 100% rename from src/_assets/css/agendamento/tabelas/tabelames.css rename to src/_assets/css/components/agendamento/tabelas/TabelaAgendamentoMes.css diff --git a/src/_assets/css/agendamento/tabelas/tabelasemana.css b/src/_assets/css/components/agendamento/tabelas/TabelaAgendamentoSemana.css similarity index 100% rename from src/_assets/css/agendamento/tabelas/tabelasemana.css rename to src/_assets/css/components/agendamento/tabelas/TabelaAgendamentoSemana.css diff --git a/src/_assets/css/doctor/DoctorForm.css b/src/_assets/css/components/medico/FormCadastroMedico.css similarity index 99% rename from src/_assets/css/doctor/DoctorForm.css rename to src/_assets/css/components/medico/FormCadastroMedico.css index 81ef2e4..6048f41 100644 --- a/src/_assets/css/doctor/DoctorForm.css +++ b/src/_assets/css/components/medico/FormCadastroMedico.css @@ -1,3 +1,5 @@ +/* DoctorForm.css */ + .doctor-form-container { padding: 1rem; } diff --git a/src/_assets/css/style.css b/src/_assets/css/components/paciente/CardConsultaPaciente.css similarity index 100% rename from src/_assets/css/style.css rename to src/_assets/css/components/paciente/CardConsultaPaciente.css diff --git a/src/_assets/css/PatientForm.css b/src/_assets/css/components/paciente/FormCadastroPaciente.css similarity index 99% rename from src/_assets/css/PatientForm.css rename to src/_assets/css/components/paciente/FormCadastroPaciente.css index f829d41..a615321 100644 --- a/src/_assets/css/PatientForm.css +++ b/src/_assets/css/components/paciente/FormCadastroPaciente.css @@ -1,3 +1,5 @@ +/* PatientForm.css */ + .patient-form-container { padding: 1rem; } diff --git a/src/_assets/css/gestao.css b/src/_assets/css/pages/admin/DashboardUsuarios.css similarity index 99% rename from src/_assets/css/gestao.css rename to src/_assets/css/pages/admin/DashboardUsuarios.css index 5991041..65c5a54 100644 --- a/src/_assets/css/gestao.css +++ b/src/_assets/css/pages/admin/DashboardUsuarios.css @@ -1,3 +1,4 @@ +/* gestao.css */ .dashboard-container { padding: 2rem; diff --git a/src/_assets/css/painel.css b/src/_assets/css/pages/admin/PainelAdmin.css similarity index 99% rename from src/_assets/css/painel.css rename to src/_assets/css/pages/admin/PainelAdmin.css index 6a54058..842ed64 100644 --- a/src/_assets/css/painel.css +++ b/src/_assets/css/pages/admin/PainelAdmin.css @@ -1,3 +1,5 @@ +/* painel.css */ + .painel-container { padding: 2rem; font-family: Arial, sans-serif; diff --git a/src/_assets/css/style/Agendamento.css b/src/_assets/css/pages/agendamento/Agendamento.css similarity index 100% rename from src/_assets/css/style/Agendamento.css rename to src/_assets/css/pages/agendamento/Agendamento.css diff --git a/src/_assets/css/style/FilaEspera.css b/src/_assets/css/pages/agendamento/FilaEspera.css similarity index 100% rename from src/_assets/css/style/FilaEspera.css rename to src/_assets/css/pages/agendamento/FilaEspera.css diff --git a/src/_assets/css/style/FinanceiroDashboard.css b/src/_assets/css/pages/financeiro/DashboardFinanceiro.css similarity index 100% rename from src/_assets/css/style/FinanceiroDashboard.css rename to src/_assets/css/pages/financeiro/DashboardFinanceiro.css diff --git a/src/_assets/css/style/Inicio.css b/src/_assets/css/pages/geral/Dashboard.css similarity index 99% rename from src/_assets/css/style/Inicio.css rename to src/_assets/css/pages/geral/Dashboard.css index 21e4058..32a4c58 100644 --- a/src/_assets/css/style/Inicio.css +++ b/src/_assets/css/pages/geral/Dashboard.css @@ -1,3 +1,5 @@ +/* Inicio.css */ + /* Container Principal */ .dashboard-container { padding: 2rem; diff --git a/src/_assets/css/style/LandingPage.css b/src/_assets/css/pages/geral/Inicio.css similarity index 100% rename from src/_assets/css/style/LandingPage.css rename to src/_assets/css/pages/geral/Inicio.css diff --git a/src/_assets/css/style/ProfilePage.css b/src/_assets/css/pages/geral/PerfilUsuario.css similarity index 100% rename from src/_assets/css/style/ProfilePage.css rename to src/_assets/css/pages/geral/PerfilUsuario.css diff --git a/src/_assets/css/styleMedico/DoctorRelatorioManager.css b/src/_assets/css/pages/medico/CadastroRelatorio.css similarity index 93% rename from src/_assets/css/styleMedico/DoctorRelatorioManager.css rename to src/_assets/css/pages/medico/CadastroRelatorio.css index 374d049..6c5e0a9 100644 --- a/src/_assets/css/styleMedico/DoctorRelatorioManager.css +++ b/src/_assets/css/pages/medico/CadastroRelatorio.css @@ -1,3 +1,5 @@ +/* DoctorRelatorioManager.css */ + .contador-relatorios { background-color: #1e3a8a; color: white; diff --git a/src/_assets/css/styleMedico/chat.css b/src/_assets/css/pages/medico/Chat.css similarity index 100% rename from src/_assets/css/styleMedico/chat.css rename to src/_assets/css/pages/medico/Chat.css diff --git a/src/_assets/css/styleMedico/FormNovoRelatorio.css b/src/_assets/css/pages/medico/FormRelatorio.css similarity index 100% rename from src/_assets/css/styleMedico/FormNovoRelatorio.css rename to src/_assets/css/pages/medico/FormRelatorio.css diff --git a/src/_assets/css/doctor/HorariosDisponibilidade.css b/src/_assets/css/pages/medico/HorariosDisponibilidade.css similarity index 100% rename from src/_assets/css/doctor/HorariosDisponibilidade.css rename to src/_assets/css/pages/medico/HorariosDisponibilidade.css diff --git a/src/_assets/css/styleMedico/geral.css b/src/_assets/css/pages/medico/RelatorioEProntuario.css similarity index 99% rename from src/_assets/css/styleMedico/geral.css rename to src/_assets/css/pages/medico/RelatorioEProntuario.css index 2d46acb..57b0dff 100644 --- a/src/_assets/css/styleMedico/geral.css +++ b/src/_assets/css/pages/medico/RelatorioEProntuario.css @@ -1,3 +1,5 @@ +/* geral.css */ + /* --- Estilos Gerais e Reset Básico --- */ :root { --cor-primaria: #0078d7; /* Azul principal */ diff --git a/src/_assets/css/style/inicioPaciente.css b/src/_assets/css/pages/paciente/DashboardPaciente.css similarity index 99% rename from src/_assets/css/style/inicioPaciente.css rename to src/_assets/css/pages/paciente/DashboardPaciente.css index 3990267..9614c31 100644 --- a/src/_assets/css/style/inicioPaciente.css +++ b/src/_assets/css/pages/paciente/DashboardPaciente.css @@ -1,3 +1,5 @@ +/* inicioPaciente.css */ + .dashboard-paciente-container { padding: 2rem; background-color: #f7f9fc; diff --git a/src/_assets/css/style/DoctorCadastroManager.css b/src/_assets/css/pages/secretaria/CadastroMedico.css similarity index 99% rename from src/_assets/css/style/DoctorCadastroManager.css rename to src/_assets/css/pages/secretaria/CadastroMedico.css index 19933a3..b615d81 100644 --- a/src/_assets/css/style/DoctorCadastroManager.css +++ b/src/_assets/css/pages/secretaria/CadastroMedico.css @@ -1,3 +1,5 @@ +/* DoctorCadastroManager.css */ + /* Estilos do modal */ .modal-overlay { display: flex; diff --git a/src/_assets/css/style/PatientCadastroManager.css b/src/_assets/css/pages/secretaria/CadastroPaciente.css similarity index 99% rename from src/_assets/css/style/PatientCadastroManager.css rename to src/_assets/css/pages/secretaria/CadastroPaciente.css index 301fcce..fb857f8 100644 --- a/src/_assets/css/style/PatientCadastroManager.css +++ b/src/_assets/css/pages/secretaria/CadastroPaciente.css @@ -1,3 +1,5 @@ +/* PatientCadastroManager.css */ + .page-heading { margin-bottom: 2rem; } diff --git a/src/_assets/css/style/DisponibilidadesDoctorPage.css b/src/_assets/css/pages/secretaria/DisponibilidadesMedico.css similarity index 99% rename from src/_assets/css/style/DisponibilidadesDoctorPage.css rename to src/_assets/css/pages/secretaria/DisponibilidadesMedico.css index bf216c8..e6a515d 100644 --- a/src/_assets/css/style/DisponibilidadesDoctorPage.css +++ b/src/_assets/css/pages/secretaria/DisponibilidadesMedico.css @@ -1,3 +1,5 @@ +/* DisponibilidadesDoctorPage.css */ + .disponibilidades-container { padding: 20px; background: #f5f7fa; diff --git a/src/_assets/css/style/TableDoctor.css b/src/_assets/css/pages/secretaria/TabelaMedicos.css similarity index 100% rename from src/_assets/css/style/TableDoctor.css rename to src/_assets/css/pages/secretaria/TabelaMedicos.css diff --git a/src/_assets/css/style/TablePaciente.css b/src/_assets/css/pages/secretaria/TabelaPacientes.css similarity index 100% rename from src/_assets/css/style/TablePaciente.css rename to src/_assets/css/pages/secretaria/TabelaPacientes.css diff --git a/src/_assets/utils/Functions-Endpoints/General.js b/src/_assets/utils/Functions-Endpoints/General.js index 1235901..b1a05af 100644 --- a/src/_assets/utils/Functions-Endpoints/General.js +++ b/src/_assets/utils/Functions-Endpoints/General.js @@ -43,5 +43,4 @@ const SearchCep = async (cep) => { .then(response => console.log(response)) } - -export { UserInfos,SearchCep }; +export { UserInfos,SearchCep }; \ No newline at end of file diff --git a/src/_assets/utils/Functions-Endpoints/Patient.js b/src/_assets/utils/Functions-Endpoints/Patient.js index 14cbfd6..20cd14d 100644 --- a/src/_assets/utils/Functions-Endpoints/Patient.js +++ b/src/_assets/utils/Functions-Endpoints/Patient.js @@ -1,7 +1,5 @@ import API_KEY from "../apiKeys"; - - const GetPatientByID = async (ID,authHeader) => { var myHeaders = new Headers(); @@ -9,19 +7,18 @@ const GetPatientByID = async (ID,authHeader) => { myHeaders.append('Authorization', authHeader) var requestOptions = { - method: 'GET', - redirect: 'follow', - headers:myHeaders -}; + method: 'GET', + redirect: 'follow', + headers:myHeaders + }; - -const result = await fetch(`https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/patients?id=eq.${ID}`, requestOptions) -const DictPaciente = await result.json() -return DictPaciente + const result = await fetch(`https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/patients?id=eq.${ID}`, requestOptions) + const DictPaciente = await result.json() + return DictPaciente } const GetAllPatients = async (authHeader) => { - var myHeaders = new Headers(); + var myHeaders = new Headers(); myHeaders.append("apikey", API_KEY); myHeaders.append("Authorization", authHeader); @@ -34,20 +31,18 @@ const GetAllPatients = async (authHeader) => { const result = await fetch("https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/patients", requestOptions) const DictPacientes = await result.json() return DictPacientes - } +} - const GetPatientByCPF = async (cpf, authHeader) => { +const GetPatientByCPF = async (cpf, authHeader) => { const Pacientes = await GetAllPatients(authHeader) - - + for (let i = 0; i < Pacientes.length; i++) { if (Pacientes[i].cpf === cpf) { console.log('Paciente encontrado:', Pacientes[i]); return Pacientes[i]; } else{console.log("nada encontrado")} - } - - } + } +} export {GetPatientByID, GetAllPatients, GetPatientByCPF} \ No newline at end of file diff --git a/src/components/Header/Header.jsx b/src/components/Header/Header.jsx index 707ea4a..0858867 100644 --- a/src/components/Header/Header.jsx +++ b/src/components/Header/Header.jsx @@ -1,9 +1,7 @@ -//Nesta página falta: ajustar caminho do CSS - import { useState, useRef, useEffect } from 'react'; import { createPortal } from 'react-dom'; import { useNavigate, useLocation } from 'react-router-dom'; -// import './Header.css'; +import '../../_assets/css/components/Header.css'; const Header = () => { // --- hooks (sempre na mesma ordem) --- diff --git a/src/components/Sidebar/Sidebar.jsx b/src/components/Sidebar/Sidebar.jsx index 5fff25c..62c5746 100644 --- a/src/components/Sidebar/Sidebar.jsx +++ b/src/components/Sidebar/Sidebar.jsx @@ -1,14 +1,14 @@ import { useState, useEffect } from "react"; import { Link, useNavigate } from "react-router-dom"; -import { useAuth } from "./utils/AuthProvider"; +import { useAuth } from "../../_assets/utils/AuthProvider"; import MobileMenuToggle from "./MobileMenuToggle"; import ToggleSidebar from "./ToggleSidebar"; -import PacienteItems from "../data/sidebar-items-paciente.json" -import DoctorItems from "../data/sidebar-items-medico.json" -import admItems from "../data/sidebar-items-adm.json" -import SecretariaItems from "../data/sidebar-items-secretaria.json" -import FinanceiroItems from "../data/sidebar-items-financeiro.json" +import PacienteItems from "../../data/sidebar-items-paciente.json" +import DoctorItems from "../../data/sidebar-items-medico.json" +import admItems from "../../data/sidebar-items-adm.json" +import SecretariaItems from "../../data/sidebar-items-secretaria.json" +import FinanceiroItems from "../../data/sidebar-items-financeiro.json" function Sidebar({ menuItems }) { diff --git a/src/components/Sidebar/ToggleSidebar.jsx b/src/components/Sidebar/ToggleSidebar.jsx index fd24cdd..b5d83af 100644 --- a/src/components/Sidebar/ToggleSidebar.jsx +++ b/src/components/Sidebar/ToggleSidebar.jsx @@ -1,8 +1,6 @@ -//Nesta página falta: ajustar caminho do CSS - import { useState, useEffect } from 'react' import { Link, useLocation } from 'react-router-dom' -//import "./Estilo/Toggle.css" +import "../../_assets/css/components/Sidebar/ToggleSidebar.css" const ToggleSidebar = ({ perfil, items, defaultOpen = false }) => { const [isOpen, setOpen] = useState(defaultOpen) diff --git a/src/components/TrocarPerfis.jsx b/src/components/TrocarPerfis.jsx index 2d6e968..2382028 100644 --- a/src/components/TrocarPerfis.jsx +++ b/src/components/TrocarPerfis.jsx @@ -1,12 +1,11 @@ //TrocardePerfis.jsx -//Nesta página falta: ajustar caminho do CSS import { useState, useEffect } from "react"; import { useNavigate } from "react-router-dom"; import { UserInfos } from "../_assets/utils/Functions-Endpoints/General"; import { useAuth } from "../_assets/utils/AuthProvider"; -//import "./TrocardePerfis.css"; +import "../_assets/css/components/TrocarPerfis.css"; const ToggleIcon = ({ isOpen }) => ( { useEffect(() => { @@ -8,7 +8,7 @@ const VlibrasWidget = () => { const vwDiv = document.createElement('div'); vwDiv.setAttribute('vw', ''); vwDiv.classList.add('enabled'); - vwDiv.id = 'vlibras-div'; // 🔹 ADICIONADO: ID para remoção segura + vwDiv.id = 'vlibras-div'; // ADICIONADO: ID para remoção segura const vwAccessButton = document.createElement('div'); vwAccessButton.setAttribute('vw-access-button', ''); diff --git a/src/components/agendamento/CardConsulta.jsx b/src/components/agendamento/CardConsulta.jsx index 27334f0..00a61dd 100644 --- a/src/components/agendamento/CardConsulta.jsx +++ b/src/components/agendamento/CardConsulta.jsx @@ -1,10 +1,7 @@ -//Nesta página falta: ajustar caminho do CSS - import { useNavigate } from 'react-router-dom'; import { useAuth } from '../../_assets/utils/AuthProvider'; -//import "./style/card-consulta.css" - +import '../../_assets/css/components/agendamento/CardConsulta.css' const CardConsulta = ( {DadosConsulta, TabelaAgendamento, setShowDeleteModal, setDictInfo, setSelectedId, setShowConfirmModal, corModal, selectedID, coresConsultas, setListaConsultaID, listaConsultasID} ) => { const navigate = useNavigate(); diff --git a/src/components/agendamento/FormNovaConsulta.jsx b/src/components/agendamento/FormAgendamento.jsx similarity index 99% rename from src/components/agendamento/FormNovaConsulta.jsx rename to src/components/agendamento/FormAgendamento.jsx index dcddbb2..50b4f18 100644 --- a/src/components/agendamento/FormNovaConsulta.jsx +++ b/src/components/agendamento/FormAgendamento.jsx @@ -1,4 +1,4 @@ -//Nesta página falta: mudar nome da página, ajustar caminho do CSS +//FormNovaConsulta.jsx import { useState, useEffect, useCallback } from "react"; import { GetPatientByCPF, GetAllPatients } from "../../_assets/utils/Functions-Endpoints/Patient"; @@ -6,8 +6,7 @@ import { GetAllDoctors } from "../../_assets/utils/Functions-Endpoints/Doctor"; import { useAuth } from "../../_assets/utils/AuthProvider"; import API_KEY from "../../_assets/utils/apiKeys"; -//import "./style/formagendamentos.css"; - +import '../../_assets/css/components/agendamento/FormAgendamento.css'; const FormNovaConsulta = ({ onCancel, onSave, setAgendamento, agendamento }) => { const { getAuthorizationHeader } = useAuth(); diff --git a/src/components/agendamento/TabelaAgendamentoDia.jsx b/src/components/agendamento/TabelaAgendamentoDia.jsx index 2c453c3..ca5ff8d 100644 --- a/src/components/agendamento/TabelaAgendamentoDia.jsx +++ b/src/components/agendamento/TabelaAgendamentoDia.jsx @@ -1,7 +1,6 @@ -//Nesta página falta: ajustar caminho do CSS - import { useState, useEffect } from 'react'; import { ChevronLeft, ChevronRight, Edit, Trash2, User, Stethoscope } from 'lucide-react'; +import '../../_assets/css/components/agendamento/tabelas/TabelaAgendamentoDia.css'; import dayjs from 'dayjs'; import 'dayjs/locale/pt-br'; diff --git a/src/components/agendamento/TabelaAgendamentoMes.jsx b/src/components/agendamento/TabelaAgendamentoMes.jsx index bb7c523..d84bcb1 100644 --- a/src/components/agendamento/TabelaAgendamentoMes.jsx +++ b/src/components/agendamento/TabelaAgendamentoMes.jsx @@ -1,11 +1,10 @@ -//Nesta página falta: ajustar caminho do CSS - import { useEffect, useState, useMemo } from 'react'; +import '../../_assets/css/components/agendamento/tabelas/TabelaAgendamentoMes.css'; + import CardConsulta from './CardConsulta'; import Spinner from '../Spinner'; import dayjs from "dayjs"; -//import "./style/styleTabelas/tabelames.css"; const TabelaAgendamentoMes = ({ ListarDiasdoMes, agendamentos, setShowDeleteModal, setSelectedId ,setDictInfo, setShowConfirmModal, coresConsultas ,setListaConsultaID, listaConsultasID }) => { diff --git a/src/components/agendamento/TabelaAgendamentoSemana.jsx b/src/components/agendamento/TabelaAgendamentoSemana.jsx index 14c2ab9..e1635db 100644 --- a/src/components/agendamento/TabelaAgendamentoSemana.jsx +++ b/src/components/agendamento/TabelaAgendamentoSemana.jsx @@ -1,14 +1,12 @@ -//Nesta página falta: ajustar caminho do CSS - import { useEffect, useState, useMemo } from 'react'; +import '../../_assets/css/components/agendamento/tabelas/TabelaAgendamentoSemana.css'; + import CardConsulta from './CardConsulta'; import Spinner from '../Spinner'; import weekOfYear from 'dayjs/plugin/weekOfYear' import dayjs from 'dayjs'; dayjs.extend(weekOfYear) -//import "./style/styleTabelas/tabelasemana.css"; - const TabelaAgendamentoSemana = ({ agendamentos, ListarDiasdoMes, setShowDeleteModal ,setSelectedId ,setDictInfo, setShowConfirmModal, coresConsultas ,setListaConsultaID, listaConsultasID}) => { diff --git a/src/components/medico/FormCadastroMedico.jsx b/src/components/medico/FormCadastroMedico.jsx index b2e8556..2b21d34 100644 --- a/src/components/medico/FormCadastroMedico.jsx +++ b/src/components/medico/FormCadastroMedico.jsx @@ -1,13 +1,12 @@ //DoctorForm.jsx -//Nesta página falta: ajustar caminho do CSS import { useState, useRef, useCallback } from "react"; import { Link, useNavigate, useLocation } from "react-router-dom"; -import { useAuth } from '../utils/AuthProvider'; -import API_KEY from '../utils/apiKeys'; +import { useAuth } from '../../_assets/utils/AuthProvider'; +import API_KEY from '../../_assets/utils/apiKeys'; -import HorariosDisponibilidade from "../doctors/HorariosDisponibilidade"; -import "./DoctorForm.css"; +import HorariosDisponibilidade from "./HorariosDisponibilidade"; +import "../../_assets/css/components/medico/FormCadastroMedico.css"; const ENDPOINT_AVAILABILITY = "https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/doctor_availability"; diff --git a/src/components/medico/FormExcecaoDisponibilidade.jsx b/src/components/medico/FormExcecaoDisponibilidade.jsx index 513568f..2a4ec16 100644 --- a/src/components/medico/FormExcecaoDisponibilidade.jsx +++ b/src/components/medico/FormExcecaoDisponibilidade.jsx @@ -1,12 +1,9 @@ -//Nesta página falta: ajustar caminho do CSS - import { useState, useEffect } from "react"; import { useAuth } from "../../_assets/utils/AuthProvider"; import { GetAllDoctors } from '../../_assets/utils/Functions-Endpoints/Doctor'; import API_KEY from "../../_assets/utils/apiKeys"; -//import "./agendamento/style/formagendamentos.css"; - +import "../../_assets/css/components/agendamento/FormAgendamento.css"; const ENDPOINT_CRIAR_EXCECAO = "https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/doctor_exceptions"; diff --git a/src/components/medico/FormRelatorio.jsx b/src/components/medico/FormRelatorio.jsx index a90e75d..320578a 100644 --- a/src/components/medico/FormRelatorio.jsx +++ b/src/components/medico/FormRelatorio.jsx @@ -7,7 +7,7 @@ import { GetPatientByCPF } from '../_assets/utils/Functions-Endpoints/Patient' import { FormatCPF } from '../_assets/utils/Formatar/Format' import html2pdf from 'html2pdf.js' -//import '../PagesMedico/styleMedico/FormNovoRelatorio.css' +import '../../_assets/css/medico/FormRelatorio.css' const FormRelatorio = ({onSave, DictInfo, setDictInfo }) => { const {getAuthorizationHeader} = useAuth() diff --git a/src/components/medico/HorariosDisponibilidade.jsx b/src/components/medico/HorariosDisponibilidade.jsx index 41bb27f..19715f8 100644 --- a/src/components/medico/HorariosDisponibilidade.jsx +++ b/src/components/medico/HorariosDisponibilidade.jsx @@ -1,8 +1,6 @@ -//Nesta página falta: ajustar caminho do CSS - import { useState, useEffect, useCallback, useRef } from "react"; import { Clock } from "lucide-react"; -//import "./HorariosDisponibilidade.css"; +import "../../_assets/css/pages/medico/HorariosDisponibilidade.css"; const initialBlockTemplate = { id: null, diff --git a/src/data/sidebar-items-medico.json b/src/data/sidebar-items-medico.json index 0ededdb..97c43dc 100644 --- a/src/data/sidebar-items-medico.json +++ b/src/data/sidebar-items-medico.json @@ -4,6 +4,11 @@ "icon": "calendar", "url": "/medico/agendamento" }, + { + "name": "Exceções de Disponibilidade", + "icon": "calendar-x-fill", + "url": "/medico/excecoes-disponibilidade" + }, { "name": "Relatórios", @@ -16,6 +21,4 @@ "icon": "chat-dots-fill", "url": "/medico/chat" } - - -] +] \ No newline at end of file diff --git a/src/pages/admin/DashboardUsuarios.jsx b/src/pages/admin/DashboardUsuarios.jsx index b646f82..f7d43e2 100644 --- a/src/pages/admin/DashboardUsuarios.jsx +++ b/src/pages/admin/DashboardUsuarios.jsx @@ -1,8 +1,7 @@ //gestao.jsx -//Nesta página falta: ajustar caminho do CSS import { FaEdit, FaTrash } from "react-icons/fa"; -//import "./gestao.css"; +import "../../_assets/css/pages/admin/DashboardUsuarios.css"; function UserDashboard() { return ( diff --git a/src/pages/admin/PainelAdmin.jsx b/src/pages/admin/PainelAdmin.jsx index fa63c22..8e891cb 100644 --- a/src/pages/admin/PainelAdmin.jsx +++ b/src/pages/admin/PainelAdmin.jsx @@ -14,7 +14,7 @@ import { ResponsiveContainer } from "recharts"; -//import "./painel.css"; +import "../../_assets/css/pages/admin/PainelAdmin.css"; export default function PainelAdministrativo() { diff --git a/src/pages/financeiro/DashboardFinanceiro.jsx b/src/pages/financeiro/DashboardFinanceiro.jsx index 5a02b23..51bc7a3 100644 --- a/src/pages/financeiro/DashboardFinanceiro.jsx +++ b/src/pages/financeiro/DashboardFinanceiro.jsx @@ -1,8 +1,7 @@ //FinanceiroDashboard.jsx -//Nesta página falta: ajustar caminho do CSS import { useState, useEffect, useMemo, useCallback } from "react"; -//import './style/FinanceiroDashboard.css'; +import '../../_assets/css/pages/financeiro/DashboardFinanceiro.css'; const CONVENIOS_LIST = [ "Particular", diff --git a/src/pages/usuario/CadastrarUsuario.jsx b/src/pages/geral/CadastrarUsuario.jsx similarity index 100% rename from src/pages/usuario/CadastrarUsuario.jsx rename to src/pages/geral/CadastrarUsuario.jsx diff --git a/src/pages/usuario/Inicio.jsx b/src/pages/geral/Inicio.jsx similarity index 94% rename from src/pages/usuario/Inicio.jsx rename to src/pages/geral/Inicio.jsx index fea30fa..e2108ab 100644 --- a/src/pages/usuario/Inicio.jsx +++ b/src/pages/geral/Inicio.jsx @@ -1,8 +1,7 @@ //LandingPage.jsx -//Nesta página falta: ajustar caminho do CSS import { useNavigate } from "react-router-dom"; -//import './style/LandingPage.css'; +import '../../_assets/css/pages/geral/Inicio.css'; const LandingPage = () => { const navigate = useNavigate(); diff --git a/src/pages/usuario/Login.jsx b/src/pages/geral/Login.jsx similarity index 100% rename from src/pages/usuario/Login.jsx rename to src/pages/geral/Login.jsx diff --git a/src/pages/usuario/PerfilUsuario.jsx b/src/pages/geral/PerfilUsuario.jsx similarity index 99% rename from src/pages/usuario/PerfilUsuario.jsx rename to src/pages/geral/PerfilUsuario.jsx index 42bb189..baaa680 100644 --- a/src/pages/usuario/PerfilUsuario.jsx +++ b/src/pages/geral/PerfilUsuario.jsx @@ -1,9 +1,8 @@ //ProfilePage.jsx -//Nesta página falta: ajustar caminho CSS import { useState, useEffect, useCallback } from "react"; import { useLocation, useNavigate } from "react-router-dom"; -//import "./style/ProfilePage.css"; +import '../../_assets/css/pages/geral/PerfilUsuario.css'; const MOCK_API_BASE_URL = "https://mock.apidog.com/m1/1053378-0-default"; diff --git a/src/pages/usuario/RecuperarConta.jsx b/src/pages/geral/RecuperarConta.jsx similarity index 100% rename from src/pages/usuario/RecuperarConta.jsx rename to src/pages/geral/RecuperarConta.jsx diff --git a/src/pages/usuario/Support.jsx b/src/pages/geral/Support.jsx similarity index 100% rename from src/pages/usuario/Support.jsx rename to src/pages/geral/Support.jsx diff --git a/src/pages/medico/CadastroAgendamento.jsx b/src/pages/medico/CadastroAgendamento.jsx index 2d248d3..ca729db 100644 --- a/src/pages/medico/CadastroAgendamento.jsx +++ b/src/pages/medico/CadastroAgendamento.jsx @@ -1,5 +1,5 @@ //DoctorAgendamentoManager.jsx -//Nesta página falta: mudar nomes, ajustar caminho do CSS +//Nesta página falta: mudar nomes dos componentes importados import { useState, useMemo, useEffect, useCallback } from 'react'; import { useNavigate } from 'react-router-dom'; @@ -16,8 +16,8 @@ import localeData from 'dayjs/plugin/localeData'; import AgendamentoCadastroManager from '../secretaria/CadastroAgendamento.jsx'; import Spinner from '../../components/Spinner.jsx'; -//import "../pages/style/Agendamento.css"; -//import '../pages/style/FilaEspera.css'; +import '../../_assets/css/pages/agendamento/Agendamento.css'; +import '../../_assets/css/pages/agendamento/FilaEspera.css'; dayjs.locale('pt-br'); dayjs.extend(isBetween); diff --git a/src/pages/medico/CadastroRelatorio.jsx b/src/pages/medico/CadastroRelatorio.jsx index cfee4ea..11a9fe4 100644 --- a/src/pages/medico/CadastroRelatorio.jsx +++ b/src/pages/medico/CadastroRelatorio.jsx @@ -1,5 +1,4 @@ //DoctorRelatorioManager.jsx -//Nesta página falta: ajustar caminho do CSS import { useState, useEffect } from 'react'; import { Link, useNavigate } from 'react-router-dom'; @@ -10,8 +9,8 @@ import { UserInfos } from '../../_assets/utils/Functions-Endpoints/General'; import API_KEY from '../../_assets/utils/apiKeys'; import html2pdf from 'html2pdf.js'; -import TiptapViewer from './TiptapViewer'; -//import './styleMedico/DoctorRelatorioManager.css'; +import TiptapViewer from '../../components/medico/TiptapViewer'; +import '../../_assets/css/pages/medico/CadastroRelatorio.css'; const DoctorRelatorioManager = () => { const navigate = useNavigate(); diff --git a/src/pages/medico/Chat.jsx b/src/pages/medico/Chat.jsx index 0271c0a..ce1f754 100644 --- a/src/pages/medico/Chat.jsx +++ b/src/pages/medico/Chat.jsx @@ -1,7 +1,5 @@ -//Nesta página falta: ajustar caminho do CSS - import { useState, useRef, useEffect } from 'react'; -//import './styleMedico/chat.css'; +import '../../_assets/css/pages/medico/Chat.css'; // --- COMPONENTES (Estes não mudam) --- diff --git a/src/pages/medico/DashboardMedico.jsx b/src/pages/medico/DashboardMedico.jsx index 33abe4c..079ccc6 100644 --- a/src/pages/medico/DashboardMedico.jsx +++ b/src/pages/medico/DashboardMedico.jsx @@ -1,10 +1,9 @@ //InicioMedico.jsx -//Nesta página falta: ajustar caminho do CSS import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { FaUser, FaUserPlus, FaCalendarAlt, FaCalendarCheck } from 'react-icons/fa'; -//import './style/Inicio.css'; +import '../../_assets/css/pages/geral/Dashboard.css'; function Inicio() { const [pacientes, setPacientes] = useState([]); diff --git a/src/pages/medico/EditarAgendamento.jsx b/src/pages/medico/EditarAgendamento.jsx index e68c275..c186d7d 100644 --- a/src/pages/medico/EditarAgendamento.jsx +++ b/src/pages/medico/EditarAgendamento.jsx @@ -6,7 +6,7 @@ import { useAuth } from '../../_assets/utils/AuthProvider' import { UserInfos } from '../../_assets/utils/Functions-Endpoints/General' import API_KEY from '../../_assets/utils/apiKeys' -import FormNovaConsulta from '../../components/agendamento/FormNovaConsulta' +import FormNovaConsulta from '../../components/agendamento/FormAgendamento' const DoctorAgendamentoEditPage = ({DictInfo, setDictInfo}) => { diff --git a/src/pages/medico/ExcecoesDisponibilidadeMedico.jsx b/src/pages/medico/ExcecoesDisponibilidadeMedico.jsx new file mode 100644 index 0000000..0d0dbc0 --- /dev/null +++ b/src/pages/medico/ExcecoesDisponibilidadeMedico.jsx @@ -0,0 +1,249 @@ +import { useState, useEffect, useMemo, useCallback } from 'react'; +import { useAuth } from '../../_assets/utils/AuthProvider' +import FormExcecaoDisponibilidade from '../../components/medico/FormExcecaoDisponibilidade'; + +import dayjs from 'dayjs'; +import weekday from 'dayjs/plugin/weekday'; +import 'dayjs/locale/pt-br'; +dayjs.extend(weekday); +dayjs.locale('pt-br'); + +const ENDPOINT_BASE = 'https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/doctor_exceptions'; + +const getDateRange = (date, view) => { + const base = dayjs(date); + let fromDate, toDate, titleRange; + + if (view === 'diario') { + fromDate = base.startOf('day').format('YYYY-MM-DD'); + toDate = base.endOf('day').format('YYYY-MM-DD'); + titleRange = base.format('DD/MM/YYYY'); + } else if (view === 'semanal') { + fromDate = base.startOf('week').format('YYYY-MM-DD'); + toDate = base.endOf('week').format('YYYY-MM-DD'); + titleRange = `${base.startOf('week').format('DD/MM')} - ${base.endOf('week').format('DD/MM')}`; + } else { // mensal + fromDate = base.startOf('month').format('YYYY-MM-DD'); + toDate = base.endOf('month').format('YYYY-MM-DD'); + titleRange = base.format('MMMM YYYY'); + } + return { fromDate, toDate, titleRange }; +}; + +const ExcecoesDisponibilidadeDoctor = () => { + const { getAuthorizationHeader, user } = useAuth(); + const [excecoes, setExcecoes] = useState([]); + const [loading, setLoading] = useState(false); + const [visualizacao, setVisualizacao] = useState('diario'); + const [dataFiltro, setDataFiltro] = useState(dayjs().format('YYYY-MM-DD')); + const [mostrarForm, setMostrarForm] = useState(false); + const [erro, setErro] = useState(''); + const [buscaTexto, setBuscaTexto] = useState(''); + + const doctorID = user?.doctor_id || user?.id; // ajuste conforme estrutura real + + const { fromDate, toDate, titleRange } = useMemo( + () => getDateRange(dataFiltro, visualizacao), + [dataFiltro, visualizacao] + ); + + const fetchExcecoes = useCallback(async () => { + if (!doctorID) return; + setLoading(true); + setErro(''); + try { + // trata getAuthorizationHeader() que pode retornar objeto ou string + const maybeAuth = getAuthorizationHeader(); + const headers = {}; + if (typeof maybeAuth === 'string') { + headers['Authorization'] = maybeAuth; + } else if (maybeAuth && typeof maybeAuth === 'object') { + Object.assign(headers, maybeAuth); + } + headers['Content-Type'] = 'application/json'; + headers['Prefer'] = 'count=exact'; + + const params = new URLSearchParams(); + params.append('doctor_id', `eq.${doctorID}`); + params.append('date', `gte.${fromDate}`); + params.append('date', `lte.${toDate}`); + params.append('order', 'date.asc'); + + const res = await fetch(`${ENDPOINT_BASE}?${params.toString()}`, { + headers + }); + + if (!res.ok) { + throw new Error('Falha ao carregar exceções'); + } + const data = await res.json(); + setExcecoes(Array.isArray(data) ? data : []); + } catch (e) { + setErro(e.message); + } finally { + setLoading(false); + } + }, [doctorID, fromDate, toDate, getAuthorizationHeader]); + + useEffect(() => { + fetchExcecoes(); + }, [fetchExcecoes]); + + const handleDelete = async (id) => { + if (!window.confirm('Remover esta exceção?')) return; + try { + const maybeAuth = getAuthorizationHeader(); + const headers = {}; + if (typeof maybeAuth === 'string') { + headers['Authorization'] = maybeAuth; + } else if (maybeAuth && typeof maybeAuth === 'object') { + Object.assign(headers, maybeAuth); + } + headers['Content-Type'] = 'application/json'; + + const res = await fetch(`${ENDPOINT_BASE}?id=eq.${id}`, { + method: 'DELETE', + headers + }); + if (!res.ok) throw new Error('Erro ao deletar'); + setExcecoes(prev => prev.filter(e => e.id !== id)); + } catch (e) { + alert(e.message); + } + }; + + const excecoesFiltradas = useMemo(() => { + if (!buscaTexto.trim()) return excecoes; + const txt = buscaTexto.toLowerCase(); + return excecoes.filter(e => + (e.reason || '').toLowerCase().includes(txt) || + (e.kind || '').toLowerCase().includes(txt) + ); + }, [buscaTexto, excecoes]); + + const mudarData = (delta) => { + const base = dayjs(dataFiltro); + let nova; + if (visualizacao === 'diario') nova = base.add(delta, 'day'); + else if (visualizacao === 'semanal') nova = base.add(delta, 'week'); + else nova = base.add(delta, 'month'); + setDataFiltro(nova.format('YYYY-MM-DD')); + }; + + if (mostrarForm) { + return ( +
+

Nova Exceção

+ { + setMostrarForm(false); + if (reload) fetchExcecoes(); + }} + /> +
+ ); + } + + return ( +
+
+

Exceções de Disponibilidade

+ +
+ +
+
+ + + +
+ +
+ + {titleRange} + +
+ + setDataFiltro(e.target.value)} + style={{ maxWidth: 160 }} + /> + + setBuscaTexto(e.target.value)} + style={{ flex: 1, minWidth: 180 }} + /> +
+ + {erro &&
{erro}
} + {loading &&
Carregando...
} + + {!loading && excecoesFiltradas.length === 0 && ( +
Nenhuma exceção neste intervalo.
+ )} + + {!loading && excecoesFiltradas.length > 0 && ( +
+ + + + + + + + + + + + + {excecoesFiltradas.map(ex => ( + + + + + + + + + ))} + +
DataInícioTérminoTipoMotivo
{ex.date ? dayjs(ex.date).format('DD/MM/YYYY') : '-'}{ex.start_time || ex.inicio || '-'}{ex.end_time || ex.termino || '-'}{ex.kind || ex.tipoAtendimento || '-'}{ex.reason || ex.motivo || '-'} + +
+
+ )} +
+ ); +}; + +export default ExcecoesDisponibilidadeDoctor; \ No newline at end of file diff --git a/src/pages/medico/FormRelatorio.jsx b/src/pages/medico/FormRelatorio.jsx index 9a8c168..56c7ec9 100644 --- a/src/pages/medico/FormRelatorio.jsx +++ b/src/pages/medico/FormRelatorio.jsx @@ -1,5 +1,4 @@ //FormNovoRelatorio.jsx -//Nesta página falta: ajustar caminho do CSS import { useEffect, useState, useRef } from 'react'; import { useNavigate } from 'react-router-dom'; @@ -10,7 +9,8 @@ import { UserInfos } from '../../_assets/utils/Functions-Endpoints/General'; import API_KEY from '../../_assets/utils/apiKeys'; import TiptapEditor from '../../components/medico/TiptapEditor'; -//import './styleMedico/FormNovoRelatorio.css'; +import '../../_assets/css/pages/medico/FormRelatorio.css'; + const FormNovoRelatorio = () => { const { getAuthorizationHeader } = useAuth(); diff --git a/src/pages/medico/Prontuario.jsx b/src/pages/medico/Prontuario.jsx index 34af20f..17379bf 100644 --- a/src/pages/medico/Prontuario.jsx +++ b/src/pages/medico/Prontuario.jsx @@ -1,7 +1,6 @@ //prontuario.jsx -//Nesta página falta: ajustar caminho do CSS -//import "./styleMedico/geral.css"; +import '../../_assets/css/pages/medico/RelatorioEProntuario.css'; const pacientes = [ { diff --git a/src/pages/medico/Relatorio.jsx b/src/pages/medico/Relatorio.jsx index 09c8899..ddbf380 100644 --- a/src/pages/medico/Relatorio.jsx +++ b/src/pages/medico/Relatorio.jsx @@ -1,8 +1,7 @@ //relatorio.jsx -//Nesta página falta: ajustar caminho do CSS import { useState } from 'react'; -//import './styleMedico/geral.css'; +import '../../_assets/css/pages/medico/RelatorioEProntuario.css'; const mockData = { atendimentos: [ diff --git a/src/pages/paciente/DashboardPaciente.jsx b/src/pages/paciente/DashboardPaciente.jsx index a794da9..ee615b2 100644 --- a/src/pages/paciente/DashboardPaciente.jsx +++ b/src/pages/paciente/DashboardPaciente.jsx @@ -1,5 +1,4 @@ //inicioPaciente.jsx -//Nesta página falta: ajustar caminho do CSS import { useState, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; @@ -7,7 +6,7 @@ import { FaCalendarAlt, FaCalendarCheck, FaFileAlt, FaUserMd, FaClock } from 're import { useAuth } from '../../_assets/utils/AuthProvider'; import API_KEY from '../../_assets/utils/apiKeys'; -// import './style/inicioPaciente.css'; +import '../../_assets/css/pages/paciente/DashboardPaciente.css'; function InicioPaciente() { const navigate = useNavigate(); diff --git a/src/pages/paciente/ListaConsulta.jsx b/src/pages/paciente/ListaConsulta.jsx index 4105ae2..843c444 100644 --- a/src/pages/paciente/ListaConsulta.jsx +++ b/src/pages/paciente/ListaConsulta.jsx @@ -1,5 +1,5 @@ //ConsultasPaciente.jsx -//Nesta página falta: mudar nomes, ajustar caminho do CSS +//Nesta página falta: mudar nomes import { useState, useMemo, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; @@ -15,8 +15,8 @@ import localeData from 'dayjs/plugin/localeData'; import AgendamentoCadastroManager from '../secretaria/CadastroAgendamento.jsx'; import Spinner from '../../components/Spinner.jsx'; -// import "../pages/style/Agendamento.css"; -// import '../pages/style/FilaEspera.css'; +import '../../_assets/css/pages/agendamento/Agendamento.css'; +import '../../_assets/css/pages/agendamento/FilaEspera.css'; dayjs.locale('pt-br'); dayjs.extend(isBetween); diff --git a/src/pages/secretaria/CadastroAgendamento.jsx b/src/pages/secretaria/CadastroAgendamento.jsx index 2ecbc2f..25af273 100644 --- a/src/pages/secretaria/CadastroAgendamento.jsx +++ b/src/pages/secretaria/CadastroAgendamento.jsx @@ -7,7 +7,7 @@ import { useAuth } from '../../_assets/utils/AuthProvider'; import { UserInfos } from '../../_assets/utils/Functions-Endpoints/General'; import API_KEY from '../../_assets/utils/apiKeys'; -import FormNovaConsulta from '../../components/agendamento/FormNovaConsulta'; +import FormNovaConsulta from '../../components/agendamento/FormAgendamento'; import dayjs from 'dayjs'; diff --git a/src/pages/secretaria/CadastroLaudos.jsx b/src/pages/secretaria/CadastroLaudos.jsx index feb864b..376a90d 100644 --- a/src/pages/secretaria/CadastroLaudos.jsx +++ b/src/pages/secretaria/CadastroLaudos.jsx @@ -11,8 +11,7 @@ import API_KEY from '../../_assets/utils/apiKeys'; import html2pdf from 'html2pdf.js'; import TiptapViewer from '../../components/medico/TiptapViewer' - -//import '../PagesMedico/styleMedico/DoctorRelatorioManager.css'; +import '../../_assets/css/pages/medico/CadastroRelatorio.css'; const LaudoManager = () => { const navigate = useNavigate(); diff --git a/src/pages/secretaria/CadastroMedico.jsx b/src/pages/secretaria/CadastroMedico.jsx index 2281f7b..2168cae 100644 --- a/src/pages/secretaria/CadastroMedico.jsx +++ b/src/pages/secretaria/CadastroMedico.jsx @@ -1,5 +1,5 @@ //DoctorCadastroManager.jsx -//Nesta página falta: mudar nomes, ajustar caminho do CSS +//Nesta página falta: mudar nomes import { useState } from 'react'; import { useNavigate, useLocation } from 'react-router-dom'; @@ -7,7 +7,7 @@ import { useAuth } from '../../_assets/utils/AuthProvider'; import API_KEY from '../../_assets/utils/apiKeys'; import DoctorForm from '../../components/medico/FormCadastroMedico'; -//import './style/DoctorCadastroManager.css'; +import '../../_assets/css/pages/secretaria/CadastroMedico.css'; function DoctorCadastroManager() { const [doctorData, setDoctorData] = useState({}); diff --git a/src/pages/secretaria/CadastroPaciente.jsx b/src/pages/secretaria/CadastroPaciente.jsx index 3fc70ae..b335e6b 100644 --- a/src/pages/secretaria/CadastroPaciente.jsx +++ b/src/pages/secretaria/CadastroPaciente.jsx @@ -1,5 +1,5 @@ //PatientCadastroManager.jsx -//Nesta página falta: mudar nomes, ajustar caminho do CSS +//Nesta página falta: mudar nomes import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; @@ -7,7 +7,7 @@ import { useAuth } from '../../_assets/utils/AuthProvider'; import API_KEY from '../../_assets/utils/apiKeys'; import PatientForm from '../../components/paciente/FormCadastroPaciente'; -//import './style/PatientCadastroManager.css'; +import '../../_assets/css/pages/secretaria/CadastroPaciente.css'; function PatientCadastroManager() { const navigate = useNavigate() diff --git a/src/pages/secretaria/Dashboard.jsx b/src/pages/secretaria/Dashboard.jsx index 3477964..365602b 100644 --- a/src/pages/secretaria/Dashboard.jsx +++ b/src/pages/secretaria/Dashboard.jsx @@ -1,12 +1,11 @@ //inicio.jsx -//Nesta página falta: ajustar caminho do CSS import { useState, useEffect } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { FaUser, FaUserPlus, FaCalendarAlt, FaCalendarCheck } from 'react-icons/fa'; import { useAuth } from '../../_assets/utils/AuthProvider'; import API_KEY from '../../_assets/utils/apiKeys'; -// import './style/Inicio.css'; +import '../../_assets/css/pages/geral/Dashboard.css'; function Inicio() { diff --git a/src/pages/secretaria/DisponibilidadesMedico.jsx b/src/pages/secretaria/DisponibilidadesMedico.jsx index a6c1e57..1a71b07 100644 --- a/src/pages/secretaria/DisponibilidadesMedico.jsx +++ b/src/pages/secretaria/DisponibilidadesMedico.jsx @@ -5,7 +5,7 @@ import { useAuth } from "../../_assets/utils/AuthProvider"; import API_KEY from "../../_assets/utils/apiKeys"; import HorariosDisponibilidade from "../../components/medico/HorariosDisponibilidade"; -// import "./style/DisponibilidadesDoctorPage.css"; +import "../../_assets/css/pages/secretaria/DisponibilidadesMedico.css"; const ENDPOINT = "https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/doctor_availability"; const DOCTORS_ENDPOINT = "https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/doctors"; diff --git a/src/pages/secretaria/EditarAgendamento.jsx b/src/pages/secretaria/EditarAgendamento.jsx index 225109f..aae0db4 100644 --- a/src/pages/secretaria/EditarAgendamento.jsx +++ b/src/pages/secretaria/EditarAgendamento.jsx @@ -7,7 +7,7 @@ import { useAuth } from '../../_assets/utils/AuthProvider' import { UserInfos } from '../../_assets/utils/Functions-Endpoints/General' import API_KEY from '../../_assets/utils/apiKeys' -import FormNovaConsulta from '../../components/agendamento/FormNovaConsulta' +import FormNovaConsulta from '../../components/agendamento/FormAgendamento' const AgendamentoEditPage = ({setDictInfo, DictInfo}) => { diff --git a/src/pages/secretaria/ExcecoesDisponibilidade.jsx b/src/pages/secretaria/ExcecoesDisponibilidade.jsx index 2c6fc3a..49e1649 100644 --- a/src/pages/secretaria/ExcecoesDisponibilidade.jsx +++ b/src/pages/secretaria/ExcecoesDisponibilidade.jsx @@ -1,14 +1,14 @@ //ExcecoesDisponibilidade.jsx -//Nesta página falta: ajustar caminho do CSS import { useState, useEffect, useCallback, useMemo } from 'react'; import { useAuth } from '../../_assets/utils/AuthProvider'; +import { GetAllDoctors } from '../../_assets/utils/Functions-Endpoints/Doctor'; import API_KEY from '../../_assets/utils/apiKeys'; import FormExcecaoDisponibilidade from '../../components/medico/FormExcecaoDisponibilidade'; -//import "../components/agendamento/style/formagendamentos.css"; -//import "./style/Agendamento.css"; -//import './style/FilaEspera.css'; +import '../../_assets/css/components/agendamento/FormAgendamento.css'; +import '../../_assets/css/pages/agendamento/Agendamento.css'; +import '../../_assets/css/pages/agendamento/FilaEspera.css'; import 'dayjs/locale/pt-br'; import weekday from 'dayjs/plugin/weekday'; @@ -17,6 +17,7 @@ dayjs.extend(weekday); dayjs.locale('pt-br'); const ENDPOINT_BASE = "https://yuanqfswhberkoevtmfr.supabase.co/rest/v1/doctor_exceptions"; +const API_ROOT = "https://yuanqfswhberkoevtmfr.supabase.co/rest/v1"; const getDateRange = (date, view) => { const startDayjs = dayjs(date); @@ -103,7 +104,52 @@ const ExcecoesDisponibilidade = () => { const result = await response.json(); if (response.ok && Array.isArray(result)) { - setExcecoes(result); + // usar função existente para obter lista de médicos + const doctorIds = Array.from(new Set(result.map(r => r.doctor_id).filter(Boolean))); + let doctors = []; + try { + // GetAllDoctors já retorna id e full_name (ver Doctor.js) + doctors = await GetAllDoctors(authHeader); + } catch (err) { + console.warn('Falha ao obter lista de médicos via GetAllDoctors:', err); + doctors = []; + } + const doctorMap = {}; + if (Array.isArray(doctors)) { + doctors.forEach(d => { + if (d && d.id != null) doctorMap[d.id] = d.full_name || d.name || d.display_name || d.id; + }); + } + + // buscar nomes de quem criou (profiles) — usa REST direto (não há função pronta) + const createdByIds = Array.from(new Set(result.map(r => r.created_by).filter(Boolean))); + const creatorMap = {}; + if (createdByIds.length > 0) { + const inList = createdByIds.map(id => (isNaN(Number(id)) ? `"${String(id).replace(/"/g,'\\"')}"` : id)).join(','); + const profilesUrl = `${API_ROOT}/profiles?select=*&id=in.(${inList})`; + try { + const resProfiles = await fetch(profilesUrl, { method: 'GET', headers: myHeaders, redirect: 'follow' }); + if (resProfiles.ok) { + const profiles = await resProfiles.json(); + profiles.forEach(p => { + creatorMap[p.id] = p.full_name || p.name || p.username || p.email || p.id; + }); + } else { + console.warn('Não foi possível buscar profiles:', resProfiles.status); + } + } catch (err) { + console.warn('Erro ao buscar profiles:', err); + } + } + + // anexa nomes às exceções (fallback para ids caso não encontre nome) + const enriched = result.map(r => ({ + ...r, + doctor_name: doctorMap[r.doctor_id] || r.doctor_name || r.doctor_id, + created_by_name: creatorMap[r.created_by] || r.created_by_name || r.created_by + })); + + setExcecoes(enriched); } else { setExcecoes([]); console.error("Erro ao listar exceções (Status:", response.status, "):", result); @@ -236,7 +282,7 @@ const ExcecoesDisponibilidade = () => { - + @@ -248,12 +294,12 @@ const ExcecoesDisponibilidade = () => { {excecoes.map((exc) => ( - + - +
Médico (ID)Médico (Nome) Data Início Término

{exc.doctor_id}

{exc.doctor_name || exc.doctor_id}

{dayjs(exc.date).format('DD/MM/YYYY')} {exc.start_time ? dayjs(exc.start_time, 'HH:mm:ss').format('HH:mm') : '—'} {exc.end_time ? dayjs(exc.end_time, 'HH:mm:ss').format('HH:mm') : '—'}

{exc.reason}

{exc.created_by || '—'}{exc.created_by_name || exc.created_by || '—'}