'use client' import { BookOpenCheck, Check, FileText, Layers, Video, ChevronLeft, ChevronRight } from 'lucide-react' import React, { useMemo, memo, useState } from 'react' import ToolTip from '@components/Objects/StyledElements/Tooltip/Tooltip' import { getUriWithOrg } from '@services/config/config' import Link from 'next/link' import { useRouter } from 'next/navigation' interface Props { course: any orgslug: string course_uuid: string current_activity?: string enableNavigation?: boolean } // Helper functions function getActivityTypeLabel(activityType: string): string { switch (activityType) { case 'TYPE_VIDEO': return 'Video' case 'TYPE_DOCUMENT': return 'Document' case 'TYPE_DYNAMIC': return 'Interactive' case 'TYPE_ASSIGNMENT': return 'Assignment' default: return 'Unknown' } } function getActivityTypeBadgeColor(activityType: string): string { switch (activityType) { case 'TYPE_VIDEO': return 'bg-blue-100 text-blue-700' case 'TYPE_DOCUMENT': return 'bg-purple-100 text-purple-700' case 'TYPE_DYNAMIC': return 'bg-green-100 text-green-700' case 'TYPE_ASSIGNMENT': return 'bg-orange-100 text-orange-700' default: return 'bg-gray-100 text-gray-700' } } // Memoized activity type icon component const ActivityTypeIcon = memo(({ activityType }: { activityType: string }) => { switch (activityType) { case 'TYPE_VIDEO': return