"use client"; import { Link, usePathname } from '@/i18n/routing'; import { useTranslations, useLocale } from 'next-intl'; import { useFetch } from '@/hooks/useFetch'; import { isAdmin } from '@/lib/admin'; import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuPortal, DropdownMenuSubContent } from '../ui/dropdown-menu'; import { Button } from '../ui/button'; import { BookUserIcon, HouseIcon, InfoIcon, MenuIcon, MessagesSquareIcon, UsersIcon, VideoIcon } from 'lucide-react'; interface MenuWithChildren { id: string; name: any; // Json type slug: string; children: MenuWithChildren[]; } interface ClassData { id: string; name: string; code: string; } interface DashboardMenuProps { menus: MenuWithChildren[]; } export default function DashboardMenu({ menus = [] }: DashboardMenuProps) { const t = useTranslations('Sidebar'); const locale = useLocale(); const pathname = usePathname(); const { data: classes } = useFetch('/api/classes'); const { data: userProfile } = useFetch('/api/user/profile'); const isActive = (path: string) => pathname === path; // Check if user is admin or educator const userIsAdmin = isAdmin(userProfile?.data); const getLocalizedName = (name: any) => { if (!name) return ''; return name[locale] || name['id'] || name['en'] || ''; }; return (
{/* Navigation */}
); }