"use client" import Link from "next/link" import { usePathname } from "next/navigation" import { signOut } from "next-auth/react" import { Users, Settings, Upload, BarChart3, Calendar, LogOut, Home, Palette } from "lucide-react" import { Button } from "@/components/ui/button" import { cn } from "@/lib/utils" import { UserRole } from "@/types/database" interface AdminSidebarProps { user: { id: string name: string email: string role: UserRole image?: string } } const navigation = [ { name: "Dashboard", href: "/admin", icon: Home, roles: [UserRole.SHOP_ADMIN, UserRole.SUPER_ADMIN], }, { name: "Artists", href: "/admin/artists", icon: Users, roles: [UserRole.SHOP_ADMIN, UserRole.SUPER_ADMIN], }, { name: "Portfolio", href: "/admin/portfolio", icon: Palette, roles: [UserRole.SHOP_ADMIN, UserRole.SUPER_ADMIN], }, { name: "Calendar", href: "/admin/calendar", icon: Calendar, roles: [UserRole.SHOP_ADMIN, UserRole.SUPER_ADMIN], }, { name: "Analytics", href: "/admin/analytics", icon: BarChart3, roles: [UserRole.SHOP_ADMIN, UserRole.SUPER_ADMIN], }, { name: "File Manager", href: "/admin/uploads", icon: Upload, roles: [UserRole.SHOP_ADMIN, UserRole.SUPER_ADMIN], }, { name: "Settings", href: "/admin/settings", icon: Settings, roles: [UserRole.SHOP_ADMIN, UserRole.SUPER_ADMIN], }, ] export function AdminSidebar({ user }: AdminSidebarProps) { const pathname = usePathname() // Filter navigation items based on user role const filteredNavigation = navigation.filter(item => item.roles.includes(user.role) ) const handleSignOut = async () => { await signOut({ callbackUrl: "/" }) } return (
{user.name}
{user.role.replace('_', ' ').toLowerCase()}