refactor: consolidate form client components and standardize layout modularity

This commit is contained in:
2026-05-28 17:56:03 +07:00 Unverified
parent 49e7690b7b
commit 9879fd8ee8
22 changed files with 844 additions and 288 deletions
+1 -1
View File
@@ -32,7 +32,7 @@ export async function createForm(formData: FormData) {
redirect(`/form/admin/${form.id}/edit`);
}
export async function updateForm(id: string, data: { title: string; description?: string }) {
export async function updateForm(id: string, data: { title: string; description?: string; isOpen?: boolean }) {
const session = await getServerSession(authOptions);
const adminIds = (process.env.ADMIN_DISCORD_IDS ?? "").split(",").map((s) => s.trim()).filter(Boolean);
const discordId = (session?.user as { discordId?: string } | undefined)?.discordId;
+6
View File
@@ -17,6 +17,12 @@ export async function submitForm(
const discordId = (session.user as { discordId?: string }).discordId;
if (!discordId) throw new Error("No Discord ID found");
const form = await db.query.forms.findFirst({
where: (f, { eq }) => eq(f.id, formId),
});
if (!form) throw new Error("Form not found");
if (!form.isOpen) throw new Error("This form is disabled for now");
const existingSubmission = await db.query.submissions.findFirst({
where: (s, { eq, and }) =>
and(eq(s.formId, formId), eq(s.userDiscordId, discordId)),