"use client" import { useEffect, useState } from "react" import { useRouter } from "next/navigation" import { Sidebar } from "@/components/sidebar" import { DashboardHeader } from "@/components/dashboard-header" import { getCurrentUser } from "@/lib/auth" export default function DashboardLayout({ children, }: { children: React.ReactNode }) { const router = useRouter() const [isAuthorized, setIsAuthorized] = useState(false) const [mounted, setMounted] = useState(false) useEffect(() => { setMounted(true) // Simple auth check for dashboard access const user = getCurrentUser() if (!user) { router.push("/login") } else { setIsAuthorized(true) } }, [router]) // Prevent hydration mismatch by returning null on first render if (!mounted) return null // Optional: Loading state while checking auth if (!isAuthorized) { return ( // Simple loading screen to match background
) } // Canonical Layout Structure return (
{/* Sidebar - Fixed Left, Fixed Width */} {/* Main Content Area - Flex Column */}
{/* Header - Fixed Top */}
{/* Scrollable Main Content */}
{children}
) }