import React, { useState } from 'react' import { motion } from 'framer-motion' import { useNavigate } from 'react-router-dom' import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter' import { vscDarkPlus } from 'react-syntax-highlighter/dist/esm/styles/prism' import { BookOpen, Brain, CheckCircle, ArrowRight, Sparkles } from 'lucide-react' const LessonViewer = ({ lesson, topic }) => { const navigate = useNavigate() const [completed, setCompleted] = useState(false) // Process HTML content to handle code blocks const processContent = (htmlContent) => { const parser = new DOMParser() const doc = parser.parseFromString(htmlContent, 'text/html') // Find all code blocks const codeBlocks = doc.querySelectorAll('pre code') codeBlocks.forEach((block, index) => { const code = block.textContent const language = block.className.includes('python') ? 'python' : 'javascript' block.setAttribute('data-code', code) block.setAttribute('data-language', language) block.setAttribute('data-index', index) }) return doc.body.innerHTML } const renderContent = () => { const processedContent = processContent(lesson.content) return (
) } React.useEffect(() => { // After render, replace code blocks with syntax highlighted versions const codeBlocks = document.querySelectorAll('[data-code]') codeBlocks.forEach((block) => { const code = block.getAttribute('data-code') const language = block.getAttribute('data-language') const container = document.createElement('div') container.className = 'my-4 rounded-xl overflow-hidden shadow-lg' const highlightedCode = ( {code} ) block.parentElement.replaceWith(container) }) }, [lesson]) const handleComplete = () => { setCompleted(true) setTimeout(() => { navigate(`/quiz/${topic.id}`) }, 1000) } return ( {/* Lesson Header */}

AI-Generated Lesson

Personalized for your learning level: {lesson.difficulty}

{lesson.agent_metadata && (
Teaching Style: {lesson.agent_metadata.teaching_style || 'Adaptive'} Complexity: {lesson.agent_metadata.complexity || lesson.difficulty} {lesson.agent_metadata.example_count && ( Examples: {lesson.agent_metadata.example_count} )}
)}
{/* Lesson Content */} {renderContent()} {/* Action Buttons */}
{completed ? ( ) : ( )}

{completed ? 'Lesson Completed!' : 'Ready to Test Your Knowledge?'}

{completed ? 'Redirecting to quiz...' : 'Take a quiz to reinforce what you learned'}

{!completed && ( Take Quiz )}
{/* Knowledge Level Indicator */} {lesson.knowledge_level !== undefined && (

Your Knowledge Progress

{Math.round(lesson.knowledge_level * 100)}% Knowledge Level
)}
) } export default LessonViewer