forked from RiseUP/riseup-squad20
🔧 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
72 lines
2.2 KiB
TypeScript
72 lines
2.2 KiB
TypeScript
"use client";
|
|
|
|
import { RotateCcw } from "lucide-react";
|
|
import Link from "next/link";
|
|
import { usePathname, useRouter } from "next/navigation";
|
|
|
|
export default function HeaderAgenda() {
|
|
const pathname = usePathname();
|
|
const router = useRouter();
|
|
|
|
const isAg = pathname?.startsWith("/agendamento");
|
|
const isPr = pathname?.startsWith("/procedimento");
|
|
const isFi = pathname?.startsWith("/financeiro");
|
|
|
|
const tabCls = (active: boolean, extra = "") =>
|
|
`px-4 py-1.5 text-[13px] border ${
|
|
active
|
|
? "border-blue-500 bg-blue-50 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium"
|
|
: "text-muted-foreground hover:bg-muted border-border"
|
|
} ${extra}`;
|
|
|
|
return (
|
|
<header className="border-b bg-background border-border">
|
|
<div className="mx-auto w-full max-w-7xl px-8 py-3 flex items-center justify-between">
|
|
<h1 className="text-[18px] font-semibold text-foreground">Novo Agendamento</h1>
|
|
|
|
<div className="flex items-center gap-2">
|
|
<nav
|
|
role="tablist"
|
|
aria-label="Navegação de Agendamento"
|
|
className="flex items-center gap-2"
|
|
>
|
|
<Link
|
|
href="/agenda"
|
|
role="tab"
|
|
aria-selected={isAg}
|
|
className={tabCls(Boolean(isAg)) + " rounded-md"}
|
|
>
|
|
Agendamento
|
|
</Link>
|
|
<Link
|
|
href="/procedimento"
|
|
role="tab"
|
|
aria-selected={isPr}
|
|
className={tabCls(Boolean(isPr)) + " rounded-md"}
|
|
>
|
|
Procedimento
|
|
</Link>
|
|
<Link
|
|
href="/financeiro"
|
|
role="tab"
|
|
aria-selected={isFi}
|
|
className={tabCls(Boolean(isFi)) + " rounded-md"}
|
|
>
|
|
Financeiro
|
|
</Link>
|
|
</nav>
|
|
|
|
<button
|
|
type="button"
|
|
aria-label="Histórico"
|
|
onClick={() => router.back()}
|
|
className="inline-flex h-8 w-8 items-center justify-center rounded-md border border-border bg-background text-muted-foreground hover:bg-muted"
|
|
>
|
|
<RotateCcw className="h-4 w-4" />
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
);
|
|
}
|