From 47967eb37f102548d4efb88b6418ba8845d16e39 Mon Sep 17 00:00:00 2001 From: Jonas Francisco Date: Fri, 3 Oct 2025 02:22:40 -0300 Subject: [PATCH] feat: Implementa sistema completo de modo escuro MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Adiciona ThemeProvider com next-themes para controle de tema - Implementa componente SimpleThemeToggle com ícones sol/lua - Configura CSS variables completas para light/dark modes no globals.css - Padroniza todas as páginas de autenticação (login, login-admin, login-paciente) - Padroniza todos os módulos principais (dashboard, pacientes, doutores, consultas, calendar, configuração) - Padroniza completamente área profissional com todas as seções: * Calendário e agendamentos * Busca e gestão de pacientes * Prontuários médicos completos * Comunicação e relatórios * Seções de exames (solicitados, resultados, diagnósticos, prescrições, evolução, anexos) - Atualiza componentes UI (input, select, textarea) com bordas visíveis - Implementa suporte dark mode em tooltips, badges de status e mensagens - Garante acessibilidade e consistência visual em ambos os modos - Mantém funcionalidades existentes sem breaking changes Todos os elementos agora respondem adequadamente ao toggle de tema, proporcionando experiência de usuário consistente e acessível. --- .../app/(main-routes)/calendar/page.tsx | 6 +- .../app/(main-routes)/configuracao/page.tsx | 8 +- .../app/(main-routes)/consultas/page.tsx | 4 +- .../app/(main-routes)/dashboard/page.tsx | 2 +- .../app/(main-routes)/doutores/page.tsx | 4 +- .../app/(main-routes)/pacientes/page.tsx | 4 +- susconecta/app/globals.css | 35 ++ susconecta/app/layout.tsx | 11 +- susconecta/app/login-admin/page.tsx | 10 +- susconecta/app/login-paciente/page.tsx | 10 +- susconecta/app/login/page.tsx | 10 +- susconecta/app/profissional/page.tsx | 362 +++++++++--------- susconecta/components/header.tsx | 3 + susconecta/components/simple-theme-toggle.tsx | 22 ++ susconecta/components/theme-toggle.tsx | 37 ++ susconecta/components/ui/input.tsx | 8 +- susconecta/components/ui/select.tsx | 6 +- susconecta/components/ui/textarea.tsx | 6 +- 18 files changed, 332 insertions(+), 216 deletions(-) create mode 100644 susconecta/components/simple-theme-toggle.tsx create mode 100644 susconecta/components/theme-toggle.tsx diff --git a/susconecta/app/(main-routes)/calendar/page.tsx b/susconecta/app/(main-routes)/calendar/page.tsx index dabcec7..e6e97ad 100644 --- a/susconecta/app/(main-routes)/calendar/page.tsx +++ b/susconecta/app/(main-routes)/calendar/page.tsx @@ -85,7 +85,7 @@ export default function AgendamentoPage() { }; return ( -
+
@@ -122,7 +122,7 @@ export default function AgendamentoPage() {
-

+

{formatDate(currentCalendarDate)}

-
+
{todayEvents.length} consulta{todayEvents.length !== 1 ? 's' : ''} agendada{todayEvents.length !== 1 ? 's' : ''}
@@ -490,8 +490,8 @@ const ProfissionalPage = () => { {/* Lista de Pacientes do Dia */}
{todayEvents.length === 0 ? ( -
- +
+

Nenhuma consulta agendada para este dia

Agenda livre para este dia

@@ -501,7 +501,7 @@ const ProfissionalPage = () => { return (
@@ -512,18 +512,18 @@ const ProfissionalPage = () => { >
- + {appointment.title}
{paciente && ( -
+
CPF: {paciente.cpf} • {paciente.idade} anos
)}
- + {appointment.time}
@@ -550,9 +550,9 @@ const ProfissionalPage = () => { > -
+
Ver informações do paciente -
+
@@ -567,7 +567,13 @@ const ProfissionalPage = () => { }; - function PacientesSection({ handleAbrirProntuario, setActiveSection }) { + function PacientesSection({ + handleAbrirProntuario, + setActiveSection, + }: { + handleAbrirProntuario: (paciente: any) => void; + setActiveSection: (section: string) => void; + }) { // Estados para busca de pacientes const [buscaPaciente, setBuscaPaciente] = useState(""); const [pacientesBusca, setPacientesBusca] = useState([]); @@ -622,11 +628,11 @@ const ProfissionalPage = () => { }; return ( -
+

Gerenciamento de Pacientes

{/* Campo de busca */} -
+

Buscar Paciente

@@ -669,8 +675,8 @@ const ProfissionalPage = () => { {/* Resultados da busca */} {erroBusca && ( -
-

{erroBusca}

+
+

{erroBusca}

)} @@ -679,10 +685,10 @@ const ProfissionalPage = () => {

Resultados da busca ({pacientesBusca.length}):

{pacientesBusca.map((paciente, index) => ( -
+

{paciente.nome}

-

CPF: {paciente.cpf} • Idade: {paciente.idade} anos

+

CPF: {paciente.cpf} • Idade: {paciente.idade} anos

-
+
Ver informações do paciente -
+
@@ -755,7 +761,7 @@ const ProfissionalPage = () => { const renderProntuarioSection = () => (
-
+

Prontuário do Paciente

{/* Informações do Paciente Selecionado */} @@ -773,7 +779,7 @@ const ProfissionalPage = () => { } }} > - + @@ -817,15 +823,15 @@ const ProfissionalPage = () => { {/* Seletor de Paciente */} {!pacienteSelecionado && (
-
+
- -

Selecionar Paciente

-

Escolha um paciente para visualizar o prontuário completo

+ +

Selecionar Paciente

+

Escolha um paciente para visualizar o prontuário completo

-
-