const Sidebar = ( course, onSelectVideo, currentVideoId ) => return ( <div className="sidebar"> <div className="sidebar-header"> <h2>course.title</h2> </div> <div className="curriculum"> course.sections.map((section, sIdx) => ( <div key=sIdx className="section"> <h4>section.title</h4> <ul> section.videos.map((video) => ( <li key=video.id className=`video-item $currentVideoId === video.id ? 'active' : '' $video.isWatched ? 'watched' : ''` onClick=() => onSelectVideo(video) > <span className="status-icon"> video.isWatched ? '✓' : '○' </span> <span className="title">video.title</span> <span className="duration">video.duration</span> </li> )) </ul> </div> )) </div> </div> ); ;
const AndreiNeagoieFeature = () => // State: Store the course data with watched status const [courseData, setCourseData] = useState(ZTM_COURSES[0]); const [currentVideo, setCurrentVideo] = useState(null); watch andrei neagoie videos
title: 'HTML & CSS', videos: [ id: 'v4', title: 'HTML5 Fundamentals', duration: '20:10', isWatched: false , id: 'v5', title: 'CSS Grid vs Flexbox', duration: '15:00', isWatched: false , id: 'v6', title: 'Project: Portfolio Website', duration: '45:30', isWatched: false , ] , const Sidebar = ( course, onSelectVideo, currentVideoId )
// Mock Data: Andrei Neagoie's Course Structure const ZTM_COURSES = [ '✓' : '○' <
<div className="video-controls"> <h3>video.title</h3> <p>Instructor: Andrei Neagoie ;