AppSidebar komponentinin özellikleri ve kullanımı
| Prop | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| brand | BrandData | ✅ | Logo ve marka bilgileri |
| user | UserData | ✅ | Kullanıcı bilgileri |
| navGroups | NavGroup[] | ✅ | Menü grupları |
import { Home, Package } from 'lucide-react'
const navGroups = [
{
label: "Menü", // Grup başlığı (opsiyonel)
items: [
{
title: "Ana Sayfa",
url: "/",
icon: Home,
},
{
title: "Kargolar",
icon: Package,
badge: "12", // Bildirim sayısı
items: [ // Alt menü
{ title: "Tüm Kargolar", url: "/shipments" },
{ title: "Yeni Kargo", url: "/shipments/new" },
],
},
],
},
{
// Label olmadan grup (ayraç çizgisi görünür)
items: [
{
title: "Ayarlar",
url: "/settings",
icon: Settings,
},
],
},
]interface NavGroup {
label?: string // Grup başlığı (opsiyonel)
items: NavItem[]
}
interface NavItem {
title: string
url?: string // Ana item tıklanabilir mi?
icon: LucideIcon
badge?: string // Bildirim badge
items?: NavSubItem[] // Alt menü
}
interface NavSubItem {
title: string
url: string // Alt item'lar mutlaka url'e sahip
}
interface BrandData {
title: string
subtitle?: string
url: string
icon: LucideIcon
}
interface UserData {
name: string
email: string
avatar?: string
role?: string
}// Aktif item <a className="bg-sidebar-accent text-sidebar-accent-foreground"> // Hover state <a className="hover:bg-sidebar-accent hover:text-sidebar-accent-foreground">
Sidebar'ın altında kullanıcı bilgileri ve dropdown menü bulunur:
Sol taraftaki sidebar'da şunları test edebilirsiniz: