🔧 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
106 lines
2.9 KiB
TypeScript
106 lines
2.9 KiB
TypeScript
"use client"
|
|
|
|
import Link from "next/link"
|
|
import { usePathname } from "next/navigation"
|
|
import { cn } from "@/lib/utils"
|
|
import {
|
|
Sidebar as ShadSidebar,
|
|
SidebarHeader,
|
|
SidebarContent,
|
|
SidebarFooter,
|
|
SidebarGroup,
|
|
SidebarGroupLabel,
|
|
SidebarGroupContent,
|
|
SidebarMenu,
|
|
SidebarMenuItem,
|
|
SidebarMenuButton,
|
|
SidebarRail,
|
|
} from "@/components/ui/sidebar"
|
|
|
|
import {
|
|
Home,
|
|
Calendar,
|
|
Users,
|
|
UserCheck,
|
|
FileText,
|
|
BarChart3,
|
|
Settings,
|
|
Stethoscope,
|
|
User,
|
|
} from "lucide-react"
|
|
|
|
const navigation = [
|
|
{ name: "Dashboard", href: "/dashboard", icon: Home },
|
|
{ name: "Calendario", href: "/calendar", icon: Calendar },
|
|
{ name: "Pacientes", href: "/pacientes", icon: Users },
|
|
{ name: "Médicos", href: "/doutores", icon: User },
|
|
{ name: "Consultas", href: "/consultas", icon: UserCheck },
|
|
{ name: "Relatórios", href: "/dashboard/relatorios", icon: BarChart3 },
|
|
{ name: "Configurações", href: "/configuracao", icon: Settings },
|
|
]
|
|
|
|
export function Sidebar() {
|
|
const pathname = usePathname()
|
|
|
|
return (
|
|
<ShadSidebar
|
|
/* mude para side="right" se preferir */
|
|
side="left"
|
|
/* isso faz colapsar para ícones */
|
|
collapsible="icon"
|
|
className="border-r border-sidebar-border"
|
|
>
|
|
<SidebarHeader>
|
|
<Link
|
|
href="/"
|
|
className="flex items-center gap-2 hover:opacity-80 transition-opacity pt-2"
|
|
>
|
|
<div className="w-8 h-8 bg-primary rounded-lg flex items-center justify-center shrink-0">
|
|
<Stethoscope className="w-4 h-4 text-primary-foreground" />
|
|
</div>
|
|
|
|
{/* este span some no modo ícone */}
|
|
<span className="text-lg font-semibold text-sidebar-foreground group-data-[collapsible=icon]:hidden">
|
|
MediConnect
|
|
</span>
|
|
</Link>
|
|
</SidebarHeader>
|
|
|
|
<SidebarContent>
|
|
<SidebarGroup>
|
|
<SidebarGroupLabel className="group-data-[collapsible=icon]:hidden">
|
|
Menu
|
|
</SidebarGroupLabel>
|
|
<SidebarGroupContent>
|
|
<SidebarMenu>
|
|
{navigation.map((item) => {
|
|
const isActive = pathname === item.href ||
|
|
(pathname.startsWith(item.href + "/") && item.href !== "/dashboard")
|
|
|
|
return (
|
|
<SidebarMenuItem key={item.name}>
|
|
<SidebarMenuButton asChild isActive={isActive}>
|
|
<Link href={item.href} className="flex items-center">
|
|
<item.icon className="mr-3 h-4 w-4 shrink-0" />
|
|
<span className="truncate group-data-[collapsible=icon]:hidden">
|
|
{item.name}
|
|
</span>
|
|
</Link>
|
|
</SidebarMenuButton>
|
|
</SidebarMenuItem>
|
|
)
|
|
})}
|
|
|
|
</SidebarMenu>
|
|
</SidebarGroupContent>
|
|
</SidebarGroup>
|
|
</SidebarContent>
|
|
|
|
<SidebarFooter>{/* espaço para perfil/logout, se quiser */}</SidebarFooter>
|
|
|
|
{/* rail clicável/hover que ajuda a reabrir/fechar */}
|
|
<SidebarRail />
|
|
</ShadSidebar>
|
|
)
|
|
}
|