import { prisma } from "@/lib/prisma"; import { notFound } from "next/navigation"; import Link from "next/link"; import { FeedbackForm } from "./feedback-form"; interface Props { params: Promise<{ submissionId: string }>; } function formatSize(bytes: number) { if (bytes < 1024) return `${bytes} Б`; if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(0)} КБ`; return `${(bytes / 1024 / 1024).toFixed(1)} МБ`; } export default async function SubmissionPage({ params }: Props) { const { submissionId } = await params; const submission = await prisma.homeworkSubmission.findUnique({ where: { id: submissionId }, include: { user: { select: { name: true, email: true } }, feedbacks: { include: { curator: { select: { name: true } } }, orderBy: { createdAt: "desc" }, }, homework: { include: { lesson: { select: { title: true, module: { select: { title: true, course: { select: { title: true } } } }, }, }, }, }, }, }); if (!submission) notFound(); const files = (submission.files as { name: string; url: string; size: number }[]) ?? []; const isReviewed = submission.feedbacks.length > 0; return (
{submission.homework.lesson.module.course.title} · {submission.homework.lesson.module.title}
{submission.user.name}
{submission.user.email}
Сдано {new Date(submission.submittedAt).toLocaleDateString("ru-RU")}
Задание
Ответ студента
{submission.text ? (Текст не добавлен
)}Прикреплённые файлы
Фидбек
{fb.curator.name} · {new Date(fb.createdAt).toLocaleDateString("ru-RU")}{fb.text}