'use client' import { useState } from 'react' import Link from 'next/link' import { usePathname } from 'next/navigation' import { LayoutDashboard, Users, CreditCard, Settings, FileText, Menu, X, LogOut, BarChart3, Download, } from 'lucide-react' import { Button } from '@/components/ui/button' import { cn } from '@/lib/utils' interface AdminLayoutProps { children: React.ReactNode } const navigation = [ { name: 'Dashboard', href: '/admin', icon: LayoutDashboard, }, { name: 'Users', href: '/admin/users', icon: Users, }, { name: 'Billing', href: '/admin/billing', icon: CreditCard, }, { name: 'Services', href: '/admin/services', icon: FileText, }, { name: 'Analytics', href: '/admin/analytics', icon: BarChart3, }, { name: 'Reports', href: '/admin/reports', icon: Download, }, { name: 'Settings', href: '/admin/settings', icon: Settings, }, ] export default function AdminLayout({ children }: AdminLayoutProps) { const [sidebarOpen, setSidebarOpen] = useState(false) const pathname = usePathname() const handleLogout = () => { // Clear auth tokens and redirect document.cookie = 'token=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT' localStorage.removeItem('token') window.location.href = '/auth' } return (
{/* Mobile sidebar overlay */} {sidebarOpen && (
setSidebarOpen(false)} /> )} {/* Sidebar */}
{/* Logo */}
SP
Admin
{/* Navigation */} {/* Logout */}
{/* Main content */}
{/* Top bar */}
SiliconPin Admin Panel
{/* Page content */}
{children}
) }