import { db } from "@/db";
import Link from "next/link";
import {
Card,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { HtmlDisplay } from "@/components/html-display";
import { getServerSession } from "next-auth";
import { authOptions } from "@/lib/auth/auth-options";
import { canAccessForm, getSessionDiscordId } from "@/lib/auth/auth";
import { RealtimeRefresh } from "@/components/realtime-refresh";
import { Badge } from "@/components/ui/badge";
import { getFormSubmissionStats } from "@/lib/form/form-submission-stats";
export const dynamic = "force-dynamic";
export default async function FormsListingPage() {
const formsList = await db.query.forms.findMany({
where: (f, { and, eq, gt, isNull, or }) =>
and(
eq(f.isOpen, true),
or(isNull(f.closesAt), gt(f.closesAt, new Date()))
),
orderBy: (f, { desc }) => [desc(f.createdAt)],
});
const session = await getServerSession(authOptions);
const discordId = getSessionDiscordId(session);
const visibleForms = [];
for (const form of formsList) {
if (await canAccessForm(form, discordId)) {
visibleForms.push(form);
}
}
const submissionStats = await getFormSubmissionStats(
visibleForms.map((form) => form.id),
discordId
);
return (
<>
ตอนนี้ยังไม่เปิดรับสัก Form
) : (