From 8af95ea1cac1af4e448894d7cb772284be739ce2 Mon Sep 17 00:00:00 2001 From: Pallavi Kumari Date: Mon, 10 Nov 2025 20:40:34 +0530 Subject: [PATCH] Lazy-Load DB for maintenance-screen --- src/app/maintenance-screen/page.tsx | 37 +++++++++++++++++++---------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/src/app/maintenance-screen/page.tsx b/src/app/maintenance-screen/page.tsx index 028b0d6a..26120385 100644 --- a/src/app/maintenance-screen/page.tsx +++ b/src/app/maintenance-screen/page.tsx @@ -2,23 +2,34 @@ import { headers } from 'next/headers'; import { db } from '@server/db'; import { resources } from '@server/db'; import { eq } from 'drizzle-orm'; + export const dynamic = "force-dynamic"; export default async function MaintenanceScreen() { - const headersList = await headers(); - const host = headersList.get('host') || ''; - const hostname = host.split(':')[0]; - - const [resource] = await db - .select() - .from(resources) - .where(eq(resources.fullDomain, hostname)) - .limit(1); - + let resource = null; + let title = 'Service Temporarily Unavailable'; + let message = 'We are currently experiencing technical difficulties. Please check back soon.'; + let estimatedTime; - const title = resource?.maintenanceTitle || 'Service Temporarily Unavailable'; - const message = resource?.maintenanceMessage || 'We are currently experiencing technical difficulties. Please check back soon.'; - const estimatedTime = resource?.maintenanceEstimatedTime; + try { + const headersList = await headers(); + const host = headersList.get('host') || ''; + const hostname = host.split(':')[0]; + + const [res] = await db + .select() + .from(resources) + .where(eq(resources.fullDomain, hostname)) + .limit(1); + + resource = res; + title = resource?.maintenanceTitle || title; + message = resource?.maintenanceMessage || message; + estimatedTime = resource?.maintenanceEstimatedTime; + } catch (err) { + const msg = err instanceof Error ? err.message : String(err); + console.warn("Skipping DB lookup during build or missing config:", msg); + } return (