"use client"; import Link from "next/link"; import { useEffect, useState } from "react"; import { getTeacherCourses, teacherCoursesUpdatedEventName } from "@/lib/data/teacherCourses"; import type { Course } from "@/types/course"; export default function TeacherDashboardClient() { const [courses, setCourses] = useState([]); useEffect(() => { const load = () => setCourses(getTeacherCourses()); load(); window.addEventListener(teacherCoursesUpdatedEventName, load); return () => window.removeEventListener(teacherCoursesUpdatedEventName, load); }, []); const totalLessons = courses.reduce((sum, course) => sum + course.lessons.length, 0); const totalStudents = courses.reduce((sum, course) => sum + course.students, 0); const averageRating = courses.length === 0 ? 0 : courses.reduce((sum, course) => sum + course.rating, 0) / courses.length; const publishedCount = courses.filter((course) => course.status === "Published").length; const draftCount = courses.filter((course) => course.status === "Draft").length; return (

Teacher Dashboard

Manage teacher-created courses stored locally for MVP.

Upload library Create course

Courses

{courses.length}

Published: {publishedCount} | Draft: {draftCount}

Lessons

{totalLessons}

Avg. rating

{averageRating.toFixed(1)}

Students tracked: {totalStudents}

{courses.length === 0 ? (
No teacher-created courses yet.
) : (
{courses.map((course) => (

{course.level}

{course.status}

{course.title}

{course.summary}

Edit Add lesson
))}
)}
); }