import { useState, useEffect } from 'react' import { ChevronLeft, ChevronRight, Edit3, Bookmark } from 'lucide-react' import ProgressTracker from './ProgressTracker' import QuizComponent from './QuizComponent' import CommentSection from './CommentSection' import RatingComponent from './RatingComponent' import ImageGallery from './ImageGallery' import VideoPlayer from './VideoPlayer' import CodeBlock from './CodeBlock' import QuoteBox from './QuoteBox' export default function InteractiveBook({ content, components, currentPage, onPageChange, onEdit }) { const [pages, setPages] = useState([]) const [bookmarks, setBookmarks] = useState(new Set()) useEffect(() => { if (content) { const paragraphs = content.split('\n\n').filter(p => p.trim()) setPages(paragraphs) } }, [content]) const toggleBookmark = (pageIndex) => { setBookmarks(prev => { const newBookmarks = new Set(prev) if (newBookmarks.has(pageIndex)) { newBookmarks.delete(pageIndex) } else { newBookmarks.add(pageIndex) } return newBookmarks }) } const renderComponent = (component, index) => { const props = { key: component.id, data: component.data, onUpdate: (newData) => { // Update component data logic would go here } } switch (component.type) { case 'quiz': return case 'comment': return case 'rating': return case 'image': return case 'video': return case 'code': return case 'quote': return default: return null } } if (pages.length === 0) return null return (

Your Interactive Book

{pages[currentPage]}

{components.map(renderComponent)}
) }