feat(form): show response totals and queue numbers
This commit is contained in:
+12
-1
@@ -15,6 +15,7 @@ import { DeleteFormButton } from "@/components/delete-buttons";
|
||||
import { AdminShellServer } from "@/components/admin-shell-server";
|
||||
import { createDefaultForm } from "./actions";
|
||||
import { RealtimeRefresh } from "@/components/realtime-refresh";
|
||||
import { getFormSubmissionStats } from "@/lib/form-submission-stats";
|
||||
|
||||
export const dynamic = "force-dynamic";
|
||||
|
||||
@@ -22,6 +23,10 @@ export default async function AdminFormsPage() {
|
||||
const formsList = await db.query.forms.findMany({
|
||||
orderBy: (f, { desc }) => [desc(f.createdAt)],
|
||||
});
|
||||
const submissionStats = await getFormSubmissionStats(
|
||||
formsList.map((form) => form.id),
|
||||
null
|
||||
);
|
||||
|
||||
return (
|
||||
<AdminShellServer>
|
||||
@@ -48,6 +53,7 @@ export default async function AdminFormsPage() {
|
||||
<TableRow>
|
||||
<TableHead>Title</TableHead>
|
||||
<TableHead>Status</TableHead>
|
||||
<TableHead>Responses</TableHead>
|
||||
<TableHead>Created</TableHead>
|
||||
<TableHead className="text-right">Actions</TableHead>
|
||||
</TableRow>
|
||||
@@ -55,7 +61,7 @@ export default async function AdminFormsPage() {
|
||||
<TableBody>
|
||||
{formsList.length === 0 ? (
|
||||
<TableRow>
|
||||
<TableCell colSpan={4} className="h-24 text-center text-muted-foreground">
|
||||
<TableCell colSpan={5} className="h-24 text-center text-muted-foreground">
|
||||
No forms found. Create one to get started.
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
@@ -76,6 +82,11 @@ export default async function AdminFormsPage() {
|
||||
)}
|
||||
</Link>
|
||||
</TableCell>
|
||||
<TableCell className="p-0 align-middle">
|
||||
<Link href={`/admin/form/${form.id}/result`} className="flex items-center p-3 h-full w-full">
|
||||
{submissionStats.get(form.id)?.totalAnswers ?? 0}
|
||||
</Link>
|
||||
</TableCell>
|
||||
<TableCell className="p-0 align-middle">
|
||||
<Link href={`/admin/form/${form.id}`} className="flex items-center p-3 h-full w-full">
|
||||
{form.createdAt ? new Date(form.createdAt).toLocaleDateString() : 'N/A'}
|
||||
|
||||
Reference in New Issue
Block a user