fix: deploy
Some checks failed
Build & Deploy KLZ Cables / 🔍 Prepare Environment (push) Successful in 8s
Build & Deploy KLZ Cables / 🧪 Quality Assurance (push) Successful in 1m15s
Build & Deploy KLZ Cables / 🏗️ Build App (push) Successful in 3m23s
Build & Deploy KLZ Cables / 🚀 Deploy (push) Failing after 10s
Build & Deploy KLZ Cables / ⚡ PageSpeed (push) Has been skipped
Build & Deploy KLZ Cables / 🔔 Notifications (push) Successful in 2s

This commit is contained in:
2026-02-10 16:04:16 +01:00
parent 65ce8adc5d
commit f36c6731e8
18 changed files with 67 additions and 828 deletions

View File

@@ -7,9 +7,11 @@ import { FeedbackOverlay } from '@mintel/next-feedback';
import { Metadata, Viewport } from 'next';
import { NextIntlClientProvider } from 'next-intl';
import { getMessages } from 'next-intl/server';
import { Suspense } from 'react';
import '../../styles/globals.css';
import { SITE_URL } from '@/lib/schema';
import { config } from '@/lib/config';
import { setRequestLocale } from 'next-intl/server';
export const metadata: Metadata = {
metadataBase: new URL(SITE_URL),
@@ -45,6 +47,8 @@ export default async function LocaleLayout({
const localeStr = (typeof locale === 'string' ? locale : '').trim();
const safeLocale = supportedLocales.includes(localeStr) ? localeStr : 'en';
setRequestLocale(safeLocale);
let messages = {};
try {
messages = await getMessages();
@@ -57,21 +61,32 @@ export default async function LocaleLayout({
const { getServerAppServices } = await import('@/lib/services/create-services.server');
const serverServices = getServerAppServices();
const { headers } = await import('next/headers');
const requestHeaders = await headers();
// We wrap this in a try-catch to allow static rendering during build
// headers() and cookies() force dynamic rendering in Next.js
try {
const { headers } = await import('next/headers');
const requestHeaders = await headers();
if ('setServerContext' in serverServices.analytics) {
(serverServices.analytics as any).setServerContext({
userAgent: requestHeaders.get('user-agent') || undefined,
language: requestHeaders.get('accept-language')?.split(',')[0] || undefined,
referrer: requestHeaders.get('referer') || undefined,
ip: requestHeaders.get('x-forwarded-for')?.split(',')[0] || undefined,
});
if ('setServerContext' in serverServices.analytics) {
(serverServices.analytics as any).setServerContext({
userAgent: requestHeaders.get('user-agent') || undefined,
language: requestHeaders.get('accept-language')?.split(',')[0] || undefined,
referrer: requestHeaders.get('referer') || undefined,
ip: requestHeaders.get('x-forwarded-for')?.split(',')[0] || undefined,
});
}
// Track initial server-side pageview
serverServices.analytics.trackPageview();
} catch (e) {
// Falls back to noop or client-side only during static generation
if (process.env.NODE_ENV !== 'production' || !process.env.CI) {
console.warn(
'[Layout] Static generation detected or headers unavailable, skipping server-side analytics context',
);
}
}
// Track initial server-side pageview
serverServices.analytics.trackPageview();
return (
<html lang={safeLocale} className="scroll-smooth overflow-x-hidden">
<body className="flex flex-col min-h-screen font-sans selection:bg-accent selection:text-primary-dark antialiased overflow-x-hidden">
@@ -82,7 +97,9 @@ export default async function LocaleLayout({
<Footer />
<CMSConnectivityNotice />
<AnalyticsProvider />
<Suspense fallback={null}>
<AnalyticsProvider />
</Suspense>
{config.feedbackEnabled && <FeedbackOverlay />}
</NextIntlClientProvider>
</body>