'use client'; import { useEffect, useState } 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'; function formatBytes(bytes: number): string { if (bytes === 0) return '0 B'; const k = 1024; const sizes = ['B', 'KB', 'MB', 'GB']; const i = Math.floor(Math.log(bytes) / Math.log(k)); return `${parseFloat((bytes / Math.pow(k, i)).toFixed(1))} ${sizes[i]}`; } export default function DashboardLayout({ children }: { children: React.ReactNode }) { const { user, loading, logout } = useAuth(); const router = useRouter(); const pathname = usePathname(); const [sidebarOpen, setSidebarOpen] = useState(false); useEffect(() => { if (!loading && !user) { router.push('/login'); } }, [user, loading, router]); // Close drawer on route change useEffect(() => { setSidebarOpen(false); }, [pathname]); if (loading) { return (
{user.name}
{user.globalRole.toLowerCase()}
{label}
)} {children}