Dashboard Layout Test

DashboardLayout komponentinin kullanımı ve özellikleri

DashboardLayout Komponenti
Sidebar, Header ve Footer'ı bir araya getiren wrapper component

Özellikler:

  • ✅ Otomatik sidebar açma/kapama
  • ✅ Sticky header
  • ✅ İsteğe bağlı footer
  • ✅ Responsive tasarım
  • ✅ Theme desteği (dark/light)
  • ✅ Nested navigation (2 seviye)
  • ✅ Badge desteği
  • ✅ Active route highlighting
SidebarProviderAppSidebarAppHeaderAppFooter
Props
DashboardLayout bileşeni props'ları
PropTipZorunluAçıklama
brandDataBrandDataLogo ve marka bilgileri
userDataUserDataKullanıcı bilgileri
navGroupsNavGroup[]Menü yapısı
showFooterbooleanFooter göster/gizle
footerDataAppFooterPropsFooter içeriği
childrenReactNodeSayfa içeriği
Kullanım Örneği
app/(dashboard)/layout.tsx
import { DashboardLayout } from '@hascanb/arf-ui-kit/layout-kit'
import { Home, Package, Users } from 'lucide-react'

export default function Layout({ children }) {
  return (
    <DashboardLayout
      brandData={{
        title: "My App",
        subtitle: "v1.0",
        url: "/",
        icon: Home,
      }}
      userData={{
        name: "John Doe",
        email: "john@example.com",
        avatar: "/avatar.jpg",
        role: "Admin",
      }}
      navGroups={[
        {
          label: "Menü",
          items: [
            {
              title: "Ana Sayfa",
              url: "/",
              icon: Home,
            },
            {
              title: "Ürünler",
              icon: Package,
              badge: "12",
              items: [
                { title: "Tüm Ürünler", url: "/products" },
                { title: "Yeni Ürün", url: "/products/new" },
              ],
            },
          ],
        },
      ]}
      showFooter={true}
    >
      {children}
    </DashboardLayout>
  )
}
Hazır Navigation Setleri
Layout Kit utils'den import edilebilir
import { 
  testNavGroups,      // Test & geliştirme menüsü
  cargoNavGroups,     // Kargo sistemi örneği
  ecommerceNavGroups, // E-ticaret örneği
  basicNavGroups,     // Basit menü
} from '@hascanb/arf-ui-kit/layout-kit'

<DashboardLayout
  brandData={...}
  userData={...}
  navGroups={testNavGroups} // Hazır menü kullan
/>
Type Definitions
TypeScript tip tanımlamaları
interface BrandData {
  title: string
  subtitle?: string
  url: string
  icon: LucideIcon
}

interface UserData {
  name: string
  email: string
  avatar?: string
  role?: string
}

interface NavGroup {
  label?: string
  items: NavItem[]
}

interface NavItem {
  title: string
  url?: string
  icon: LucideIcon
  badge?: string
  items?: NavSubItem[]
}

interface NavSubItem {
  title: string
  url: string
}
Canlı Örnek
Şu an kullandığınız layout DashboardLayout komponenti!

Sidebar'daki menü, header'daki breadcrumb ve bu sayfa artık DashboardLayout komponenti kullanılarak render ediliyor.