"use client"; import { useEffect, useState } from "react"; import { getUser } from "@/lib/usersService"; import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem, } from "@/components/ui/sidebar"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Home, FolderKanban, BarChart3, Settings, ChevronUp, LogOut, User, GanttChart } from "lucide-react"; // Datos del menú const items = [ { title: "Dashboard", url: "/", icon: Home, }, { title: "Proyectos", url: "/proyectos", icon: FolderKanban, }, { title: "Estadísticas", url: "/estadisticas", icon: BarChart3, }, { title: "Gantt", url: "/gantt", icon: GanttChart, }, ]; export function AppSidebar() { const [user, setUser] = useState({ name: "Cargando...", email: "", avatar: "/avatar.jpg", initials: "..." }); useEffect(() => { async function loadUser() { try { const realUser = await getUser(); setUser({ name: `${realUser.firstname} ${realUser.lastname}`, email: realUser.email, avatar: "/avatar.jpg", initials: `${realUser.firstname.charAt(0)}${realUser.lastname.charAt(0)}` }); } catch (error) { console.error("Failed to load user:", error); setUser(prev => ({ ...prev, name: "Usuario desconocido" })); } } loadUser(); }, []); return ( {/* Header del Sidebar */}

Dolibarr

Gestión de Proyectos

{/* Menú de navegación */} Menú Principal {items.map((item) => ( {item.title} ))}
{/* Footer con Dropdown del Usuario */} {user.initials}
{user.name} {user.email}
{user.initials}
{user.name} {user.email}
Perfil Ajustes Cerrar sesión
); }