'use client'; import { useEffect } from 'react'; import { useRouter, usePathname } from 'next/navigation'; import Link from 'next/link'; import { useAuth } from '@/lib/auth-context'; import { Avatar } from '@/components/ui/avatar'; export default function DashboardLayout({ children }: { children: React.ReactNode }) { const { user, loading, logout } = useAuth(); const router = useRouter(); const pathname = usePathname(); useEffect(() => { if (!loading && !user) { router.push('/login'); } }, [user, loading, router]); if (loading) { return (
Loading…
); } if (!user) return null; const isActive = (href: string) => href === '/' ? pathname === '/' : pathname.startsWith(href); return (
{/* ── Sidebar ───────────────────────────────────────────── */} {/* ── Main content ──────────────────────────────────────── */}
{children}
); } function NavSection({ label, children }: { label?: string; children: React.ReactNode }) { return (
{label && (

{label}

)} {children}
); } function NavLink({ href, active, icon, children, }: { href: string; active: boolean; icon: React.ReactNode; children: React.ReactNode; }) { return ( {icon} {children} ); }