Lazy-Load DB for maintenance-screen

This commit is contained in:
Pallavi Kumari
2025-11-10 20:40:34 +05:30
committed by Owen Schwartz
parent beddb0d187
commit 8af95ea1ca

View File

@@ -2,23 +2,34 @@ import { headers } from 'next/headers';
import { db } from '@server/db'; import { db } from '@server/db';
import { resources } from '@server/db'; import { resources } from '@server/db';
import { eq } from 'drizzle-orm'; import { eq } from 'drizzle-orm';
export const dynamic = "force-dynamic"; export const dynamic = "force-dynamic";
export default async function MaintenanceScreen() { export default async function MaintenanceScreen() {
const headersList = await headers(); let resource = null;
const host = headersList.get('host') || ''; let title = 'Service Temporarily Unavailable';
const hostname = host.split(':')[0]; let message = 'We are currently experiencing technical difficulties. Please check back soon.';
let estimatedTime;
const [resource] = await db try {
.select() const headersList = await headers();
.from(resources) const host = headersList.get('host') || '';
.where(eq(resources.fullDomain, hostname)) const hostname = host.split(':')[0];
.limit(1);
const [res] = await db
.select()
.from(resources)
.where(eq(resources.fullDomain, hostname))
.limit(1);
const title = resource?.maintenanceTitle || 'Service Temporarily Unavailable'; resource = res;
const message = resource?.maintenanceMessage || 'We are currently experiencing technical difficulties. Please check back soon.'; title = resource?.maintenanceTitle || title;
const estimatedTime = resource?.maintenanceEstimatedTime; 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 ( return (
<div className="min-h-screen flex items-center justify-center bg-gray-100"> <div className="min-h-screen flex items-center justify-center bg-gray-100">