import AppLogo from '@/components/app-logo'; import Notification from '@/components/notification'; import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'; import { useSidebar } from '@/components/ui/sidebar'; import useScreen from '@/hooks/use-screen'; import { CoursePlayerProps } from '@/types/page'; import { Link, router, usePage } from '@inertiajs/react'; import { Expand, GraduationCap, Heart, LayoutDashboard, LogOut, Menu, Minimize, SettingsIcon, UserCircle } from 'lucide-react'; import { nanoid } from 'nanoid'; const Navbar = () => { const { screen } = useScreen(); const { open, toggleSidebar } = useSidebar(); const { props } = usePage(); const { translate } = props; const { button } = translate; const user = props.auth.user; return (

{props.course.title}

{screen > 768 && ( )} {user && user.photo ? ( {user.name?.charAt(0)} ) : ( )} {(user.role === 'admin' || user.role === 'instructor') && ( router.get(route('dashboard'))}> {button.dashboard} )} {(user.role === 'student' || user.role === 'instructor') && getStudentMenuItems(button).map(({ id, name, Icon, slug }) => ( router.get(route('student.index', { tab: slug }))} > {name} ))} router.post('/logout')}> {button.log_out} {screen < 768 && ( )}
); }; const getStudentMenuItems = (button: any) => [ { id: nanoid(), name: button.my_courses, slug: 'courses', Icon: GraduationCap, }, { id: nanoid(), name: button.wishlist, slug: 'wishlist', Icon: Heart, }, { id: nanoid(), name: button.profile, slug: 'profile', Icon: UserCircle, }, { id: nanoid(), name: button.settings, slug: 'settings', Icon: SettingsIcon, }, ]; export default Navbar;