import { Link, usePage } from '@inertiajs/react'; import { PropsWithChildren, ReactNode } from 'react'; import { Menu, LogOut, User as UserIcon, LayoutDashboard, BookOpen, Calendar, Settings, Users, Search, Brain } from 'lucide-react'; import { Sheet, SheetContent, SheetTrigger } from '@/Components/ui/sheet'; import { Button } from '@/Components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, DropdownMenuSeparator } from '@/Components/ui/dropdown-menu'; import { Input } from '@/Components/ui/input'; import { Avatar, AvatarFallback, AvatarImage } from '@/Components/ui/avatar'; import { cn } from '@/lib/utils'; import { ScrollArea } from '@/Components/ui/scroll-area'; import { ModeToggle } from '@/Components/ModeToggle'; import { useState, useEffect } from 'react'; import { ChevronLeft, ChevronRight, Trophy as TrophyIcon } from 'lucide-react'; import { motion, AnimatePresence } from 'framer-motion'; export default function Authenticated({ header, children, }: PropsWithChildren<{ header?: ReactNode }>) { const user = usePage().props.auth.user; const currentRoute = route().current() as string; const [isCollapsed, setIsCollapsed] = useState(() => { if (typeof window !== 'undefined') { return localStorage.getItem('sidebar-collapsed') === 'true'; } return false; }); useEffect(() => { localStorage.setItem('sidebar-collapsed', String(isCollapsed)); }, [isCollapsed]); const navItems = [ { label: 'Dashboard', icon: LayoutDashboard, href: route('dashboard'), active: route().current('dashboard') }, { label: 'Galeri Kursus', icon: BookOpen, href: route('courses.index'), active: route().current('courses.index') }, { label: 'SRS Practice', icon: Brain, href: route('srs.index'), active: route().current('srs.*') }, { label: 'Jadwal Belajar', icon: Calendar, href: '#', active: false }, { label: 'Komunitas', icon: Users, href: '#', active: false }, { label: 'Pengaturan', icon: Settings, href: route('profile.edit'), active: route().current('profile.edit') }, ]; return (
{user.name}
{user.email}