Files
moy-qr/app/admin/(dashboard)/layout.tsx
T

63 lines
2.4 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.
import Link from 'next/link'
import { LayoutDashboard, LogOut, Package, Settings, Tags, Users2 } from 'lucide-react'
import { logout } from '@/lib/auth'
import { redirect } from 'next/navigation'
export default function AdminLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<div className="flex h-screen bg-gray-100 overflow-hidden">
{/* Sidebar */}
<aside className="w-64 bg-white shadow-md flex flex-col hidden md:flex">
<div className="p-4 border-b">
<h2 className="text-xl font-bold text-gray-800">Admin Panel</h2>
</div>
<nav className="flex-1 p-4 space-y-2">
<Link href="/admin" className="flex items-center gap-3 px-3 py-2 text-gray-700 rounded-lg hover:bg-gray-100 transition-colors">
<LayoutDashboard size={20} />
<span>Dashboard</span>
</Link>
<Link href="/admin/categories" className="flex items-center gap-3 px-3 py-2 text-gray-700 rounded-lg hover:bg-gray-100 transition-colors">
<Tags size={20} />
<span>Kategoriler</span>
</Link>
<Link href="/admin/products" className="flex items-center gap-3 px-3 py-2 text-gray-700 rounded-lg hover:bg-gray-100 transition-colors">
<Package size={20} />
<span>Ürünler</span>
</Link>
<Link href="/admin/settings" className="flex items-center gap-3 px-3 py-2 text-gray-700 rounded-lg hover:bg-gray-100 transition-colors">
<Settings size={20} />
<span>Ayarlar</span>
</Link>
<Link href="/admin/users" className="flex items-center gap-3 px-3 py-2 text-gray-700 rounded-lg hover:bg-gray-100 transition-colors">
<Users2 size={20} />
<span>Kullanıcılar</span>
</Link>
</nav>
<div className="p-4 border-t">
<form action={async () => {
'use server'
await logout()
redirect('/admin/login')
}}>
<button className="flex items-center gap-3 w-full px-3 py-2 text-red-600 rounded-lg hover:bg-red-50 transition-colors">
<LogOut size={20} />
<span>Çıkış Yap</span>
</button>
</form>
</div>
</aside>
{/* Main Content */}
<main className="flex-1 overflow-y-auto bg-gray-50 p-6 md:p-8">
{children}
</main>
{/* Mobile Bottom Nav (Optional, simpler for now just a top bar) */}
</div>
)
}