From 70a312052c958c45b675009fb61a5eff207d86c5 Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Thu, 25 Jun 2026 15:03:51 +0200 Subject: [PATCH] fix: resolve ssr:false build error for dynamic imports in Server Components --- app/[locale]/layout.tsx | 6 ++---- components/decorations/DynamicCorporateBackground.tsx | 7 +++++++ components/providers/DynamicPageTransitionShutter.tsx | 7 +++++++ dummy-polyfill.js | 1 + lib/empty-polyfill.js | 2 ++ 5 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 components/decorations/DynamicCorporateBackground.tsx create mode 100644 components/providers/DynamicPageTransitionShutter.tsx create mode 100644 dummy-polyfill.js create mode 100644 lib/empty-polyfill.js diff --git a/app/[locale]/layout.tsx b/app/[locale]/layout.tsx index 39bbec5ad..bdceb693b 100644 --- a/app/[locale]/layout.tsx +++ b/app/[locale]/layout.tsx @@ -18,10 +18,8 @@ import { cookies } from 'next/headers'; import { TransitionProvider } from '@/components/providers/TransitionProvider'; import { InitialLoader } from '@/components/providers/InitialLoader'; -import dynamic from 'next/dynamic'; - -const CorporateBackground = dynamic(() => import('@/components/decorations/CorporateBackground').then(mod => mod.CorporateBackground), { ssr: false }); -const PageTransitionShutter = dynamic(() => import('@/components/providers/PageTransitionShutter').then(mod => mod.PageTransitionShutter), { ssr: false }); +import { DynamicCorporateBackground as CorporateBackground } from '@/components/decorations/DynamicCorporateBackground'; +import { DynamicPageTransitionShutter as PageTransitionShutter } from '@/components/providers/DynamicPageTransitionShutter'; const inter = Inter({ subsets: ['latin'], diff --git a/components/decorations/DynamicCorporateBackground.tsx b/components/decorations/DynamicCorporateBackground.tsx new file mode 100644 index 000000000..01631dfbf --- /dev/null +++ b/components/decorations/DynamicCorporateBackground.tsx @@ -0,0 +1,7 @@ +'use client'; +import dynamic from 'next/dynamic'; + +export const DynamicCorporateBackground = dynamic( + () => import('./CorporateBackground').then(mod => mod.CorporateBackground), + { ssr: false } +); diff --git a/components/providers/DynamicPageTransitionShutter.tsx b/components/providers/DynamicPageTransitionShutter.tsx new file mode 100644 index 000000000..b66ba7f30 --- /dev/null +++ b/components/providers/DynamicPageTransitionShutter.tsx @@ -0,0 +1,7 @@ +'use client'; +import dynamic from 'next/dynamic'; + +export const DynamicPageTransitionShutter = dynamic( + () => import('./PageTransitionShutter').then(mod => mod.PageTransitionShutter), + { ssr: false } +); diff --git a/dummy-polyfill.js b/dummy-polyfill.js new file mode 100644 index 000000000..ff8b4c563 --- /dev/null +++ b/dummy-polyfill.js @@ -0,0 +1 @@ +export default {}; diff --git a/lib/empty-polyfill.js b/lib/empty-polyfill.js new file mode 100644 index 000000000..aaf59a5a9 --- /dev/null +++ b/lib/empty-polyfill.js @@ -0,0 +1,2 @@ +// Empty polyfill to trick Next.js into not loading legacy polyfills +export default {};