import { useMemo, useState } from "react"; import { useParams } from "react-router-dom"; import { useCourseDetail, useTrackProgress } from "@/hooks/queries/useCourseGeneration"; import type { ModuleConfig, ModuleResource } from "@/types"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Progress } from "@/components/ui/progress"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible"; import { Separator } from "@/components/ui/separator"; import { Skeleton } from "@/components/ui/skeleton"; import { ScrollArea } from "@/components/ui/scroll-area"; import { BookOpen, Check, ChevronDown, FileText, Headphones, Lock, Sparkles, Video, } from "lucide-react"; import { cn } from "@/lib/utils"; function ResourceIcon({ type }: { type: ModuleResource["type"] }) { switch (type) { case "pdf": return ; case "video": return