"use client"; import { ChevronRight, Clock, Heart, HelpCircle, History, Home, LayoutGrid, LogIn, LogOut, PlusCircle, Settings, ShieldCheck, TrendingUp, User as UserIcon, } from "lucide-react"; import Link from "next/link"; import { usePathname, useSearchParams } from "next/navigation"; import * as React from "react"; import { ModeToggle } from "@/components/mode-toggle"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@/components/ui/collapsible"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, } from "@/components/ui/sidebar"; import { useAuth } from "@/providers/auth-provider"; import { CategoryService } from "@/services/category.service"; import type { Category } from "@/types/content"; 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 searchParams = useSearchParams(); const { user, logout, isAuthenticated } = 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 Ma Bibliothèque Mes Favoris Mes Mèmes {isAuthenticated && user?.role === "admin" && ( Administration Admin )} {isAuthenticated && user ? ( {user.username.slice(0, 2).toUpperCase()}
{user.displayName || user.username} {user.role}
{user.username.slice(0, 2).toUpperCase()}
{user.displayName || user.username} {user.role}
Profil Paramètres logout()}> Déconnexion
) : ( Se connecter )}
Thème
Aide
); }