From 950d3d4afeeb8fe4984e114005e4b6ab36a8dd67 Mon Sep 17 00:00:00 2001 From: gunshiz Date: Sun, 9 Aug 2026 21:20:19 +0700 Subject: [PATCH] chore(config): centralize feature settings --- app/actions/submissions.ts | 8 ++- app/discord/page.tsx | 3 +- app/form/[id]/not-found.tsx | 3 +- app/layout.tsx | 3 +- app/not-found.tsx | 3 +- app/page.tsx | 4 +- app/privacy/page.tsx | 3 +- app/robots.ts | 3 +- app/sitemap.ts | 3 +- lib/config.ts | 9 ++- lib/config/environment.test.ts | 31 ++++++++++ lib/config/environment.ts | 52 +++++++++++++++++ lib/config/server.ts | 77 +++++++++++++++++++++++++ lib/discord/discord-webhook-settings.ts | 4 +- lib/discord/discord.ts | 29 +++------- lib/followers/discord.ts | 6 +- lib/followers/roblox.ts | 5 +- lib/followers/tiktok.ts | 10 ++-- lib/followers/youtube.ts | 6 +- lib/leaderboard/discord.ts | 7 +-- lib/sanitize-html.ts | 4 +- lib/video/video-platforms.ts | 35 ++++++----- 22 files changed, 238 insertions(+), 70 deletions(-) create mode 100644 lib/config/environment.test.ts create mode 100644 lib/config/environment.ts create mode 100644 lib/config/server.ts diff --git a/app/actions/submissions.ts b/app/actions/submissions.ts index 9eb9fce..f4a5868 100644 --- a/app/actions/submissions.ts +++ b/app/actions/submissions.ts @@ -15,11 +15,13 @@ import { import { writeSubmission } from "@/lib/form/submission-write"; import { submissionWebhookMessage } from "@/lib/form/submission-webhook"; import { isFormAcceptingSubmissions } from "@/lib/form/form-availability"; +import { getCanonicalUrl } from "@/lib/config/server"; function getSubmissionResultLink(formId: string, submissionId: string) { - const baseUrl = process.env.BASE_URL || process.env.NEXTAUTH_URL; - if (!baseUrl) return `/admin/form/${formId}/result/${submissionId}`; - return new URL(`/admin/form/${formId}/result/${submissionId}`, baseUrl).toString(); + return new URL( + `/admin/form/${formId}/result/${submissionId}`, + getCanonicalUrl(), + ).toString(); } export async function submitForm( diff --git a/app/discord/page.tsx b/app/discord/page.tsx index ce548e2..341f08a 100644 --- a/app/discord/page.tsx +++ b/app/discord/page.tsx @@ -1,6 +1,7 @@ import { redirect } from 'next/navigation'; +import { config } from "@/lib/config"; export default function Page() { - redirect('https://discord.com/invite/3cZQbvW6cF'); + redirect(config.site.discordInviteUrl); return
Redirecting...
; } diff --git a/app/form/[id]/not-found.tsx b/app/form/[id]/not-found.tsx index 4f1716a..ba40e6c 100644 --- a/app/form/[id]/not-found.tsx +++ b/app/form/[id]/not-found.tsx @@ -8,6 +8,7 @@ import { Spinner } from "@/components/ui/spinner"; import Background from "@/public/background/404.png"; import Profile from "@/public/404-image.jpg"; import { Activity, Home } from "lucide-react"; +import { config } from "@/lib/config"; const MESSAGES = [ "ฟอร์มนี้อาจจะถูก Erika กินไปแล้ว...", @@ -54,7 +55,7 @@ export default function NotFound() { กลับหน้าเลือก - + - +