| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- "use client"
- import { ChevronUp, Home, FileText, Settings } from "lucide-react"
- import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuTrigger,
- } from "@/components/ui/dropdown-menu"
- import {
- Sidebar,
- SidebarContent,
- SidebarFooter,
- SidebarGroup,
- SidebarGroupContent,
- SidebarGroupLabel,
- SidebarHeader,
- SidebarMenu,
- SidebarMenuButton,
- SidebarMenuItem,
- SidebarProvider,
- SidebarTrigger,
- } from "@/components/ui/sidebar"
- import { ModeToggle } from "@/components/mode-toggle"
- // Menu items
- const items = [
- {
- title: "Inicio",
- url: "/",
- icon: Home,
- },
- {
- title: "Factura",
- url: "/factura",
- icon: FileText,
- },
- {
- title: "Configuración",
- url: "#",
- icon: Settings,
- },
- ]
- export function AppSidebar() {
- return (
- <Sidebar>
- <SidebarHeader>
- <SidebarMenu>
- <SidebarMenuItem>
- <SidebarMenuButton size="lg" className="data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground">
- <div className="flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
- <FileText className="size-4" />
- </div>
- <div className="grid flex-1 text-left text-sm leading-tight">
- <span className="truncate font-semibold">Sumire</span>
- <span className="truncate text-xs">Sistema de Facturación</span>
- </div>
- </SidebarMenuButton>
- </SidebarMenuItem>
- </SidebarMenu>
- </SidebarHeader>
- <SidebarContent>
- <SidebarGroup>
- <SidebarGroupLabel>Navegación</SidebarGroupLabel>
- <SidebarGroupContent>
- <SidebarMenu>
- {items.map((item) => (
- <SidebarMenuItem key={item.title}>
- <SidebarMenuButton asChild>
- <a href={item.url}>
- <item.icon />
- <span>{item.title}</span>
- </a>
- </SidebarMenuButton>
- </SidebarMenuItem>
- ))}
- </SidebarMenu>
- </SidebarGroupContent>
- </SidebarGroup>
- </SidebarContent>
- <SidebarFooter>
- <SidebarMenu>
- <SidebarMenuItem>
- <div className="flex items-center justify-between w-full px-2 py-1">
- <div className="grid flex-1 text-left text-sm leading-tight">
- <span className="truncate font-semibold">Tema</span>
- <span className="truncate text-xs">Cambiar modo</span>
- </div>
- <ModeToggle />
- </div>
- </SidebarMenuItem>
- <SidebarMenuItem>
- <DropdownMenu>
- <DropdownMenuTrigger asChild>
- <SidebarMenuButton
- size="sm"
- className="data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
- >
- <div className="grid flex-1 text-left text-sm leading-tight">
- <span className="truncate font-semibold">Usuario</span>
- <span className="truncate text-xs">usuario@ejemplo.com</span>
- </div>
- <ChevronUp className="ml-auto transition-transform group-data-[state=open]/dropdown-menu:rotate-180" />
- </SidebarMenuButton>
- </DropdownMenuTrigger>
- <DropdownMenuContent
- side="top"
- className="w-[--radix-popper-anchor-width]"
- >
- <DropdownMenuItem>
- <span>Mi Cuenta</span>
- </DropdownMenuItem>
- <DropdownMenuItem>
- <span>Configuración</span>
- </DropdownMenuItem>
- <DropdownMenuItem>
- <span>Cerrar Sesión</span>
- </DropdownMenuItem>
- </DropdownMenuContent>
- </DropdownMenu>
- </SidebarMenuItem>
- </SidebarMenu>
- </SidebarFooter>
- </Sidebar>
- )
- }
|