"use client"
import { useState } from "react"
import { Card } from "@/components/ui/card"
import { Button } from "@/components/ui/button"
import { Progress } from "@/components/ui/progress"
import Link from "next/link"
import { CheckCircle2, Circle, Clock } from "lucide-react"
export default function ProgressPage() {
const [activeTab, setActiveTab] = useState("progress")
// Mock data
const courses = [
{ id: 1, name: "React", lessons: 12, completed: 8 },
{ id: 2, name: "TypeScript", lessons: 10, completed: 6 },
{ id: 3, name: "Next.js", lessons: 15, completed: 4 },
{ id: 4, name: "Node.js", lessons: 20, completed: 0 }
]
const assignments = [
{ id: 1, course: "React", name: "Build a Todo App", grade: 95, status: "completed" },
{ id: 2, course: "TypeScript", name: "Type System", grade: 88, status: "completed" },
{ id: 3, course: "Next.js", name: "SSR Project", grade: null, status: "pending" },
{ id: 4, course: "Node.js", name: "REST API", grade: null, status: "not_started" }
]
const weekActivity = [
{ day: "Mon", hours: 2.5 },
{ day: "Tue", hours: 3.2 },
{ day: "Wed", hours: 1.8 },
{ day: "Thu", hours: 4.1 },
{ day: "Fri", hours: 2.9 },
{ day: "Sat", hours: 3.5 },
{ day: "Sun", hours: 1.2 }
]
const maxHours = Math.max(...weekActivity.map(d => d.hours))
return (
{/* Header */}
{/* Main Content */}
{/* Left Column - Course Progress */}
{/* My Courses */}
My courses
{courses.map((course) => {
const progress = (course.completed / course.lessons) * 100
return (
{course.name}
{course.completed}/{course.lessons}
)
})}
{/* My Grades */}
My grades
{assignments.slice(0, 3).map((assignment) => (
{assignment.course}
{assignment.name}
{assignment.grade ? (
{assignment.grade}%
) : (
Pending
)}
))}
{/* Mathematics (Separate) */}
Mathematics
{/* Center Column - Assignments Table */}
All Assignments
{/* Table */}
|
#
|
Course
|
Assignment
|
Grade
|
Status
|
{assignments.map((assignment, index) => (
|
{index + 1}
|
{assignment.course}
|
{assignment.name}
|
{assignment.grade ? `${assignment.grade}%` : '-'}
|
{assignment.status === 'completed' ? (
<>
Completed
>
) : assignment.status === 'pending' ? (
<>
Pending
>
) : (
<>
Not Started
>
)}
|
))}
{/* Weekly Activity Chart */}
Weekly Activity
{weekActivity.map((day) => (
))}
{/* Background grid */}
)
}