"use client"; import * as React from "react"; import Link from "next/link"; import { usePathname } from "next/navigation"; import { Home, TrendingUp, Clock, LayoutGrid, PlusCircle, Settings, HelpCircle, ChevronRight, LogOut, User as UserIcon, LogIn, } from "lucide-react"; import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, } from "@/components/ui/sidebar"; import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@/components/ui/collapsible"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { CategoryService } from "@/services/category.service"; import type { Category } from "@/types/content"; import { useAuth } from "@/providers/auth-provider"; const mainNav = [ { title: "Accueil", url: "/", icon: Home, }, { title: "Tendances", url: "/trends", icon: TrendingUp, }, { title: "Nouveautés", url: "/recent", icon: Clock, }, ]; export function AppSidebar() { const pathname = usePathname(); const { user, logout, isAuthenticated, isLoading } = useAuth(); const [categories, setCategories] = React.useState([]); React.useEffect(() => { CategoryService.getAll().then(setCategories).catch(console.error); }, []); return (
🐐
MemeGoat
{mainNav.map((item) => ( {item.title} ))} Explorer Catégories {categories.map((category) => ( {category.name} ))} Communauté Publier {isAuthenticated && user ? ( {user.username.slice(0, 2).toUpperCase()}
{user.displayName || user.username} {user.email}
{user.username.slice(0, 2).toUpperCase()}
{user.displayName || user.username} {user.email}
Profil Paramètres logout()}> Déconnexion
) : ( Se connecter )} Aide
); }