Files
lunaqrmenu/app/admin/layout.tsx

63 lines
2.8 KiB
TypeScript
Raw Permalink 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 React from 'react';
import Link from 'next/link';
import AdminNavItem from './components/AdminNavItem';
import SignOutButton from './components/SignOutButton';
import { getSession } from '@/app/lib/auth';
import './admin.css';
export default async function AdminLayout({
children,
}: {
children: React.ReactNode;
}) {
const session = await getSession();
return (
<div className="admin-layout">
<aside className="admin-sidebar">
<div className="admin-sidebar-header">
<Link href="/admin" className="admin-logo">
LUNA <span>ADMIN</span>
</Link>
</div>
<nav className="admin-nav">
<AdminNavItem href="/admin">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><rect x="3" y="3" width="7" height="7" /><rect x="14" y="3" width="7" height="7" /><rect x="14" y="14" width="7" height="7" /><rect x="3" y="14" width="7" height="7" /></svg>
Dashboard
</AdminNavItem>
<AdminNavItem href="/admin/categories">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z" /></svg>
Kategoriler
</AdminNavItem>
<AdminNavItem href="/admin/items">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" /></svg>
Ürünler
</AdminNavItem>
<AdminNavItem href="/admin/users">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" /><circle cx="9" cy="7" r="4" /><path d="M23 21v-2a4 4 0 0 0-3-3.87" /><path d="M16 3.13a4 4 0 0 1 0 7.75" /></svg>
Kullanıcılar
</AdminNavItem>
</nav>
<div className="admin-sidebar-footer">
<Link href="/" target="_blank" className="admin-view-site">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" /><polyline points="15 3 21 3 21 9" /><line x1="10" y1="14" x2="21" y2="3" /></svg>
Siteyi Görüntüle
</Link>
</div>
</aside>
<main className="admin-main">
<header className="admin-header">
<div className="admin-header-title">Panel</div>
<div style={{ display: 'flex', alignItems: 'center', gap: '1.5rem' }}>
<div className="admin-user">{session?.username || 'Admin'}</div>
<SignOutButton />
</div>
</header>
<div className="admin-content">
{children}
</div>
</main>
</div>
);
}