import React, { useState } from 'react'; import { Button } from '../ui/button'; import { Card } from '../ui/card'; import { Course } from '../../types'; import { PlayCircle, Star, Users, CheckCircle, Clock, Globe, ShieldCheck, Lock, ChevronDown, ChevronUp } from 'lucide-react'; import { useToast } from '../../context/ToastContext'; interface CourseDetailViewProps { course: Course; onBack: () => void; onEnroll: () => void; isEnrolled?: boolean; } export const CourseDetailView: React.FC = ({ course, onBack, onEnroll, isEnrolled }) => { const { addToast: _addToast } = useToast(); const [activeTab, setActiveTab] = useState<'overview' | 'curriculum' | 'reviews'>('overview'); const [expandedModule, setExpandedModule] = useState(course.modules?.[0].id || null); const toggleModule = (id: string) => { setExpandedModule(expandedModule === id ? null : id); }; return (
{/* Breadcrumb */}
{/* Left Content */}
{/* Header */}

{course.title}

{course.description}

{course.rating && ( {course.rating} )} {(course.studentCount || 0).toLocaleString()} students {course.duration} total English
Created by
{course.instructor}
{/* Tabs */}
{['overview', 'curriculum', 'reviews'].map(tab => ( ))}
{/* Tab Content */} {activeTab === 'overview' && (

What you'll learn

{course.whatYouWillLearn?.map((item, i) => (
{item}
))}

Requirements

    {course.requirements?.map((req, i) => (
  • {req}
  • ))}
)} {activeTab === 'curriculum' && (
{course.modules?.length} Modules • {course.modules?.reduce((acc, m) => acc + m.lessons.length, 0)} Lessons
{course.modules?.map((module) => (
toggleModule(module.id)} >

{expandedModule === module.id || expandedModule === 'all' ? : } {module.title}

{module.lessons.length} lectures
{(expandedModule === module.id || expandedModule === 'all') && (
{module.lessons.map((lesson) => (
{lesson.type === 'video' ? : } {lesson.title}
{lesson.isLocked && !isEnrolled && } {lesson.duration}
))}
)}
))}
)} {activeTab === 'reviews' && (
{course.reviews?.map(review => (
{review.username}
{[...Array(5)].map((_, i) => )}
{review.date}

{review.comment}

))}
)}
{/* Right Sidebar */}
{/* Preview Video Placeholder */}
Preview Course
{isEnrolled ? 'Enrolled' : course.price && course.price > 0 ? `$${course.price}` : 'Free'}
{course.price && course.price > 0 && !isEnrolled && (

$199.99 (85% off)

)} {isEnrolled ? ( ) : (

30-Day Money-Back Guarantee

)}

This course includes:

  • {course.duration} on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • {course.certificateAvailable && (
  • Certificate of completion
  • )}
); };