import { Session } from "@/hooks/useSessions"; import { Assignment } from "@/interfaces/results"; import { User } from "@/interfaces/user"; import { activeAssignmentFilter, futureAssignmentFilter } from "@/utils/assignments"; import { sortByModuleName } from "@/utils/moduleUtils"; import clsx from "clsx"; import moment from "moment"; import { useRouter } from "next/router"; import { useMemo } from "react"; import Button from "../Low/Button"; import ModuleBadge from "../ModuleBadge"; interface Props { assignment: Assignment user: User session?: Session startAssignment: (assignment: Assignment) => void resumeAssignment: (session: Session) => void } export default function AssignmentCard({ user, assignment, session, startAssignment, resumeAssignment }: Props) { const router = useRouter() const hasBeenSubmitted = useMemo(() => assignment.results.map((r) => r.user).includes(user.id), [assignment.results, user.id]) return (
r.user).includes(user.id) && "border-mti-green-light", )} key={assignment.id}>

{assignment.name}

{moment(assignment.startDate).format("DD/MM/YY, HH:mm")} - {moment(assignment.endDate).format("DD/MM/YY, HH:mm")}
{assignment.exams .filter((e) => e.assignee === user.id) .map((e) => e.module) .sort(sortByModuleName) .map((module) => ( ))}
{futureAssignmentFilter(assignment) && !hasBeenSubmitted && ( )} {activeAssignmentFilter(assignment) && !hasBeenSubmitted && ( <>
{!session && (
)} {!!session && (
)} )} {hasBeenSubmitted && ( )}
) }