import { Card, CardContent } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { useCourseAssignments } from "@/hooks/queries"; import { ClipboardList } from "lucide-react"; import AiCreationAssistant from "@/components/ai/AiCreationAssistant"; import AiGeneratorModal from "@/components/ai/AiGeneratorModal"; import AiTipBanner from "@/components/ai/AiTipBanner"; import type { CourseAssignment } from "@/types"; export default function TeacherAssignments() { const { data: assignmentsData, isLoading } = useCourseAssignments(); const assignments: CourseAssignment[] = assignmentsData?.items ?? []; if (isLoading) return
; const stateVariant = (s: string) => s === "finish" ? "default" : s === "cancel" ? "destructive" : "secondary"; const stateLabel = (s: string) => s === "publish" ? "Active" : s === "finish" ? "Completed" : s === "cancel" ? "Cancelled" : "Draft"; const stateFilter = (state: string) => assignments.filter(a => state === "all" ? true : a.state === state); return (

Assignments

Manage and grade student assignments.

All ({assignments.length}) Active ({stateFilter("publish").length}) Completed ({stateFilter("finish").length}) Drafts ({stateFilter("draft").length}) {["all", "publish", "finish", "draft"].map(tab => ( {stateFilter(tab).length === 0 ? (

No assignments found.

) : stateFilter(tab).map(a => (

{a.name}

{a.course_name} · {a.batch_name} · Due: {a.submission_date}

{a.submission_count}/{a.allocation_count} submissions · Marks: {a.marks}

{a.assignment_type_name} {stateLabel(a.state)}
))}
))}
); }