From 8536a8dd2084197cca8aa6720923314c2d1a5acb Mon Sep 17 00:00:00 2001 From: Jonas Francisco Date: Fri, 3 Oct 2025 02:42:32 -0300 Subject: [PATCH] =?UTF-8?q?fix:=20Corrige=20navega=C3=A7=C3=A3o=20do=20men?= =?UTF-8?q?u=20lateral=20e=20melhora=20alinhamento=20de=20formul=C3=A1rios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🔧 Correções no Menu Lateral: - Fix: Resolve problema onde clicar em "Relatórios" também ativava "Dashboard" - Ajusta lógica de detecção do item ativo na sidebar - Evita conflito entre rotas /dashboard e /dashboard/relatorios - Funciona corretamente em ambos os modos (claro e escuro) 🎨 Padronização das Páginas de Agendamento: - Padroniza sistema completo de agendamento (agenda, procedimento, financeiro) - Adiciona página /financeiro com informações financeiras e formas de pagamento - Padroniza componentes HeaderAgenda e FooterAgenda para modo escuro - Padroniza ListaEspera com cores responsivas e tabela temática - Padroniza página de calendário principal com dropdown melhorado - Padroniza página de relatórios com cards e gráficos adaptativos 📐 Melhorias no Alinhamento dos Formulários: - Fix: Corrige alinhamento dos campos no formulário de agendamento - Reorganiza layout de "Data de nascimento" e "Telefone" em colunas separadas - Alinha perfeitamente campos "Início" e "Término" em grid 2 colunas - Melhora layout geral da seção "Informações do atendimento" - Ajusta proporções do textarea de observações - Layout mais limpo e profissional em todas as telas ✨ Benefícios: - Navegação precisa no menu lateral - Sistema de agendamento completamente padronizado - Formulários com campos perfeitamente alinhados - Experiência visual consistente em modo claro e escuro - Interface mais profissional e intuitiva --- .../app/(main-routes)/calendar/page.tsx | 2 +- .../dashboard/relatorios/page.tsx | 20 +-- susconecta/app/agenda/page.tsx | 2 +- susconecta/app/financeiro/page.tsx | 148 ++++++++++++++++++ susconecta/app/procedimento/page.tsx | 20 +-- susconecta/components/agenda/FooterAgenda.tsx | 6 +- susconecta/components/agenda/HeaderAgenda.tsx | 10 +- .../components/agendamento/ListaEspera.tsx | 38 ++--- susconecta/components/dashboard/sidebar.tsx | 4 +- .../forms/calendar-registration-form.tsx | 58 ++++--- 10 files changed, 226 insertions(+), 82 deletions(-) create mode 100644 susconecta/app/financeiro/page.tsx diff --git a/susconecta/app/(main-routes)/calendar/page.tsx b/susconecta/app/(main-routes)/calendar/page.tsx index e6e97ad..b5a7947 100644 --- a/susconecta/app/(main-routes)/calendar/page.tsx +++ b/susconecta/app/(main-routes)/calendar/page.tsx @@ -103,7 +103,7 @@ export default function AgendamentoPage() { */} - + Opções » diff --git a/susconecta/app/(main-routes)/dashboard/relatorios/page.tsx b/susconecta/app/(main-routes)/dashboard/relatorios/page.tsx index 8147c76..808ca1f 100644 --- a/susconecta/app/(main-routes)/dashboard/relatorios/page.tsx +++ b/susconecta/app/(main-routes)/dashboard/relatorios/page.tsx @@ -41,14 +41,14 @@ export default function RelatoriosPage() { }; return ( -
-

Relatórios

+
+

Relatórios

{/* Card Consultas */} -
-

Relatório de Consultas

-

Resumo das consultas realizadas.

+
+

Relatório de Consultas

+

Resumo das consultas realizadas.

{/* PASSO 4 - Botão chama a função */}
{/* Card Pacientes */} -
-

Relatório de Pacientes

-

Informações gerais dos pacientes cadastrados.

+
+

Relatório de Pacientes

+

Informações gerais dos pacientes cadastrados.

{/* Card Financeiro com gráfico */} -
-

Relatório Financeiro

+
+

Relatório Financeiro

diff --git a/susconecta/app/agenda/page.tsx b/susconecta/app/agenda/page.tsx index e639578..36cc1cc 100644 --- a/susconecta/app/agenda/page.tsx +++ b/susconecta/app/agenda/page.tsx @@ -19,7 +19,7 @@ export default function NovoAgendamentoPage() { }; return ( -
+
+ {/* HEADER */} + + + {/* CORPO */} +
+ {/* INFORMAÇÕES FINANCEIRAS */} +
+ {/* Selo Financeiro */} +
+ + + + Informações Financeiras +
+ + {/* Traço separador */} +
+ + {/* VALOR DO ATENDIMENTO */} +
+ +
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+ + {/* Traço separador */} +
+ + {/* FORMA DE PAGAMENTO */} +
+ +
+
+ + +
+
+ + +
+
+ +
+ + +
+
+
+
+ + {/* Traço separador */} +
+ + {/* RESUMO FINANCEIRO */} +
+ +
+
+ Subtotal: + R$ 0,00 +
+
+ Desconto: + - R$ 0,00 +
+
+
+ Total: + R$ 0,00 +
+
+
+
+
+
+ + {/* RODAPÉ FIXO */} + +
+ ); +} \ No newline at end of file diff --git a/susconecta/app/procedimento/page.tsx b/susconecta/app/procedimento/page.tsx index 535a02b..e23320e 100644 --- a/susconecta/app/procedimento/page.tsx +++ b/susconecta/app/procedimento/page.tsx @@ -23,12 +23,12 @@ export default function ProcedimentoPage() { const tab = (active: boolean, extra = "") => `px-4 py-1.5 text-[13px] border ${ active - ? "border-sky-500 bg-sky-50 text-sky-700 font-medium" - : "text-gray-700 hover:bg-gray-100" + ? "border-sky-500 bg-sky-50 dark:bg-sky-900/30 text-sky-700 dark:text-sky-300 font-medium" + : "text-muted-foreground hover:bg-muted border-border" } ${extra}`; return ( -
+
{/* HEADER */} @@ -37,15 +37,15 @@ export default function ProcedimentoPage() { {/* ATENDIMENTOS */}
{/* Selo Atendimento com + dentro da bolinha */} -
- +
+ - Atendimento + Atendimento
{/* Traço separador */} -
+
{/* PROCEDIMENTOS */}
@@ -56,14 +56,14 @@ export default function ProcedimentoPage() {
{/* Traço separador */} -
+
{/* OUTRAS DESPESAS */}
@@ -74,7 +74,7 @@ export default function ProcedimentoPage() {
diff --git a/susconecta/components/agenda/FooterAgenda.tsx b/susconecta/components/agenda/FooterAgenda.tsx index 79b4918..91f73f9 100644 --- a/susconecta/components/agenda/FooterAgenda.tsx +++ b/susconecta/components/agenda/FooterAgenda.tsx @@ -11,15 +11,15 @@ export default function FooterAgenda() { const [bloqueio, setBloqueio] = useState(false); return ( -
+
- +
- + diff --git a/susconecta/components/agendamento/ListaEspera.tsx b/susconecta/components/agendamento/ListaEspera.tsx index bc9da0c..eaa7863 100644 --- a/susconecta/components/agendamento/ListaEspera.tsx +++ b/susconecta/components/agendamento/ListaEspera.tsx @@ -38,21 +38,21 @@ export default function ListaEspera({ patients, onNotify, onAddToWaitlist }: Lis const getPriorityColor = (priority: string) => { switch (priority) { - case 'high': return 'bg-red-100 text-red-800'; - case 'medium': return 'bg-yellow-100 text-yellow-800'; - case 'low': return 'bg-green-100 text-green-800'; - default: return 'bg-gray-100 text-gray-800'; + case 'high': return 'bg-red-100 dark:bg-red-900/30 text-red-800 dark:text-red-300'; + case 'medium': return 'bg-yellow-100 dark:bg-yellow-900/30 text-yellow-800 dark:text-yellow-300'; + case 'low': return 'bg-green-100 dark:bg-green-900/30 text-green-800 dark:text-green-300'; + default: return 'bg-muted text-muted-foreground'; } }; return ( -
-
+
+
-

Lista de Espera Inteligente

+

Lista de Espera Inteligente

-
+
🔍 @@ -70,14 +70,14 @@ export default function ListaEspera({ patients, onNotify, onAddToWaitlist }: Lis placeholder="Buscar paciente..." value={searchTerm} onChange={(e) => setSearchTerm(e.target.value)} - className="block w-full pl-10 pr-3 py-2 border border-gray-300 rounded-md leading-5 bg-white placeholder-gray-500 focus:outline-none focus:placeholder-gray-400 focus:ring-1 focus:ring-blue-500 focus:border-blue-500" + className="block w-full pl-10 pr-3 py-2 border border-input rounded-md leading-5 bg-background text-foreground placeholder-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" />
- - +
+ - + {filteredPatients.map((patient) => ( - - - -
Paciente @@ -99,16 +99,16 @@ export default function ListaEspera({ patients, onNotify, onAddToWaitlist }: Lis
+ {patient.name} + {patient.specialty} + {new Date(patient.preferredDate).toLocaleDateString('pt-BR')} @@ -116,13 +116,13 @@ export default function ListaEspera({ patients, onNotify, onAddToWaitlist }: Lis {getPriorityLabel(patient.priority)} + {patient.contact}