style: move button

This commit is contained in:
2026-07-27 19:16:56 +07:00 Unverified
parent bc856402e9
commit 1be1932814
6 changed files with 159 additions and 40 deletions
+20 -26
View File
@@ -9,11 +9,8 @@ import { authOptions } from "@/lib/auth-options";
import { requireAdmin, requireDiscordId, requireFormAccess } from "@/lib/auth";
import { sse } from "@/lib/sse";
import type { FormAnswerValue } from "@/lib/form-answer-values";
import {
answersByTemplateIndex,
normalizeSubmissionAnswers,
submissionUpdateText,
} from "@/lib/submission-intake";
import { normalizeSubmissionAnswers } from "@/lib/submission-intake";
import { submissionWebhookMessage } from "@/lib/submission-webhook";
export async function submitForm(
formId: string,
@@ -132,30 +129,19 @@ export async function submitForm(
? form.discordWebhookUpdateTemplate
: form.discordWebhookTemplate;
if (form.discordWebhookUrl && templateToUse) {
if (form.discordWebhookUrl) {
try {
const answersDict = answersByTemplateIndex(questionsList, normalizedAnswers);
const updatesText = result.isUpdate
? submissionUpdateText(questionsList, normalizedAnswers, result.oldAnswersDict)
: "";
let message = templateToUse;
// Replace {1}, {2}, etc. with value, and new variables
message = message.replace(/\{([^}]+)\}/g, (match: string, p1: string) => {
const key = p1.toLowerCase();
if (key === "username" || key === "displayname") {
return session.user?.name || "Unknown User";
}
if (key === "id") {
return discordId || "Unknown ID";
}
if (key === "update") {
return updatesText;
}
return answersDict[p1] || "Not Provided";
const message = submissionWebhookMessage({
template: templateToUse,
isUpdate: result.isUpdate,
userName: session.user.name,
discordId,
questions: questionsList,
answers: normalizedAnswers,
oldAnswersByQuestionId: result.oldAnswersDict,
});
await fetch(form.discordWebhookUrl, {
const response = await fetch(form.discordWebhookUrl, {
method: "POST",
headers: {
"Content-Type": "application/json",
@@ -164,6 +150,14 @@ export async function submitForm(
content: message,
}),
});
if (!response.ok) {
const responseBody = await response.text();
console.error("Discord webhook rejected submission notification", {
status: response.status,
statusText: response.statusText,
response: responseBody.slice(0, 500),
});
}
} catch (e) {
console.error("Failed to send webhook", e);
}