first commit
This commit is contained in:
105
frontend/components/admin/AdminSidebar.tsx
Normal file
105
frontend/components/admin/AdminSidebar.tsx
Normal file
@@ -0,0 +1,105 @@
|
||||
"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>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user