import { useState } from "react"; import { useParams, Link } from "react-router-dom"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from "@/components/ui/dialog"; import { useAssignments } from "@/hooks/queries"; import { ArrowLeft } from "lucide-react"; import { useToast } from "@/hooks/use-toast"; export default function TeacherAssignmentDetail() { const { id } = useParams(); const { data: assignmentsData, isLoading } = useAssignments(); const assignments = assignmentsData?.items ?? []; const submissions: { id: string; assignmentId: string; studentId: string; studentName: string; submittedAt: string; status: string; grade?: number; feedback?: string; file?: string }[] = []; const [gradeOpen, setGradeOpen] = useState(false); const [selectedStudent, setSelectedStudent] = useState(""); const { toast } = useToast(); if (isLoading) return
; const assignment = assignments.find(a => String(a.id) === id); const subs = submissions.filter(s => s.assignmentId === id); const maxGrade = 100; if (!assignment) return
Assignment not found.
; return (

{assignment.title}

{assignment.entity_name} · Due: {assignment.end_date}

Submissions ({subs.length}) Student Submitted Status Grade {subs.map(s => ( {s.studentName} {s.submittedAt} {s.status} {s.grade ?? "—"} {s.status === "pending" && ( )} ))}
Grade Submission — {selectedStudent}