import { db } from "@/db"; import { notFound } from "next/navigation"; import Link from "next/link"; import { Button } from "@/components/ui/button"; import { ArrowLeft, ArrowRight } from "lucide-react"; import SubmissionDetailClient from "./client"; import { DeleteSubmissionButton } from "@/components/delete-buttons"; import { RealtimeRefresh } from "@/components/realtime-refresh"; interface SubmissionDetailPageProps { params: Promise<{ id: string; submissionId: string; }>; } export default async function SubmissionDetailPage({ params }: SubmissionDetailPageProps) { const { id: formId, submissionId } = await params; const submission = await db.query.submissions.findFirst({ where: (s, { eq }) => eq(s.id, submissionId), }); if (!submission) { notFound(); } const questions = await db.query.questions.findMany({ where: (q, { eq }) => eq(q.formId, submission.formId), orderBy: (q, { asc }) => [asc(q.displayOrder)], }); const answersList = await db.query.answers.findMany({ where: (a, { eq }) => eq(a.submissionId, submission.id), }); const answersMap: Record = {}; for (const ans of answersList) { answersMap[ans.questionId] = ans.value; } const submissionsList = await db.query.submissions.findMany({ where: (s, { eq }) => eq(s.formId, formId), orderBy: (s, { desc }) => [desc(s.submittedAt)], }); const currentIndex = submissionsList.findIndex((s) => s.id === submissionId); const prevId = currentIndex > 0 ? submissionsList[currentIndex - 1].id : null; const nextId = currentIndex >= 0 && currentIndex < submissionsList.length - 1 ? submissionsList[currentIndex + 1].id : null; return (

Response Detail

{prevId && ( )} {nextId && ( )}
{prevId ? ( ) : (
)} {nextId && ( )}
); }