Files
goGin/frontend/components/admin/AdminSidebar.tsx
Beyhan Oğur 2a5b661443 first commit
2026-04-26 21:46:42 +03:00

106 lines
3.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use client"
import Link from "next/link"
import { usePathname } from "next/navigation"
import { cn } from "@/lib/utils"
import {
LayoutDashboard,
Users,
ShoppingBag,
Settings,
Package,
FileText,
Tag,
List,
Image // Import Image icon
} from "lucide-react"
const sidebarItems = [
{
title: "Dashboard",
href: "/admin",
icon: LayoutDashboard,
},
{
title: "Kullanıcılar",
href: "/admin/users",
icon: Users,
},
{
title: "Ürünler",
href: "/admin/products",
icon: Package,
},
{
title: "Siparişler",
href: "/admin/orders",
icon: ShoppingBag,
},
{
title: "Blog Yazıları",
href: "/admin/posts",
icon: FileText,
},
{
title: "Kategoriler",
href: "/admin/categories",
icon: List, // Using List icon for categories, need to import it
},
{
title: "Tags",
href: "/admin/tags",
icon: Tag,
},
{
title: "Hero Banner",
href: "/admin/heroes",
icon: Image,
},
{
title: "Ayarlar",
href: "/admin/settings",
icon: Settings,
},
]
export function AdminSidebar() {
const pathname = usePathname()
return (
<div className="hidden border-r bg-muted/40 md:block w-64 min-h-screen">
<div className="flex h-full max-h-screen flex-col gap-2">
<div className="flex h-16 items-center border-b px-6">
<Link href="/" className="flex items-center gap-2 font-semibold">
<Package className="h-6 w-6" />
<span className="">E-Ticaret Admin</span>
</Link>
</div>
<div className="flex-1 overflow-auto py-2">
<nav className="grid items-start px-4 text-sm font-medium">
{sidebarItems.map((item) => {
const Icon = item.icon
const isActive = pathname === item.href
return (
<Link
key={item.href}
href={item.href}
className={cn(
"flex items-center gap-3 rounded-lg px-3 py-2 transition-all hover:text-primary",
isActive
? "bg-muted text-primary"
: "text-muted-foreground"
)}
>
<Icon className="h-4 w-4" />
{item.title}
</Link>
)
})}
</nav>
</div>
</div>
</div>
)
}