// File: frontend/app/(protected)/layout.jsx 'use client'; import { useEffect } from 'react'; import { useRouter } from 'next/navigation'; import { useAuth } from '@/lib/auth'; import { Bell, LogOut, Users } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; // NOTE: ให้ชี้ไปยังไฟล์จริงของคุณ // เดิมบางโปรเจ็กต์ใช้ "../_components/SideNavigation" // ที่นี่อ้าง absolute import ตาม tsconfig/baseUrl import { SideNavigation } from '@/app/_components/SideNavigation'; export default function ProtectedLayout({ children }) { const { user, isAuthenticated, loading, logout } = useAuth(); const router = useRouter(); // Guard ฝั่ง client: ถ้าไม่ได้ล็อกอิน ให้เด้งไป /login useEffect(() => { if (!loading && !isAuthenticated) { router.push('/login'); } }, [loading, isAuthenticated, router]); // ระหว่างรอเช็คสถานะ หรือยังไม่ authenticated -> แสดง loading if (loading || !isAuthenticated) { return (