Frontend
Sidebar e Layout
AppLayout, sidebar e navegacao
O layout segue o padrao oficial de sidebar do shadcn/ui.
Estrutura
AppLayout = SidebarProvider > AppSidebar + SidebarInsetAppLayout—src/components/layout/AppLayout.tsxAppSidebar—src/components/layout/AppSidebar.tsxAppHeader—src/components/layout/AppHeader.tsx
AppSidebar
Usa Sidebar collapsible="icon" com:
- Header — Team switcher (seletor de workspace)
- Content — NavMain (items de navegacao)
- Footer — NavUser (menu do usuario)
- Rail — Barra lateral para toggle
Navegacao
Definida em src/lib/navigation.ts:
export const mainNavItems: NavItem[] = [
{ title: "Dashboard", url: "/dashboard", icon: LayoutDashboard },
{ title: "Negocios", url: "/deals", icon: Kanban },
{ title: "Contatos", url: "/contacts", icon: Users },
{ title: "Empresas", url: "/companies", icon: Building2 },
{ title: "Atividades", url: "/activities", icon: CalendarCheck },
];
export const settingsNavItem: NavItem = {
title: "Configuracoes",
url: "/settings",
icon: Settings,
items: [
{ title: "Empresa", url: "/settings/empresa", icon: Building },
{ title: "Equipe", url: "/settings/equipe", icon: UserCog },
// ... 8 sub-items
],
};Adicionar novo item de navegacao
- Adicione o item em
src/lib/navigation.ts - O
NavMainrenderiza automaticamente usandoSidebarMenu - Sub-items usam
Collapsiblepara expandir/recolher
AppHeader
Composto por:
SidebarTrigger— Toggle da sidebarSeparator— Divisor visualBreadcrumb— Navegacao por caminho