From 8a2b211069b84d6e2b430e4ec77e214f74e36468 Mon Sep 17 00:00:00 2001 From: Stefan Lazic Date: Fri, 4 Sep 2026 23:02:27 +0100 Subject: [PATCH] SSR Leak fix --- src/app/layout.tsx | 13 ++----------- src/components/deployment-providers.tsx | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 11 deletions(-) create mode 100644 src/components/deployment-providers.tsx diff --git a/src/app/layout.tsx b/src/app/layout.tsx index dd761df..ab1c679 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,6 +1,6 @@ import type { Metadata, Viewport } from "next"; import { Inter } from "next/font/google"; -import { ManagerProviders } from "@/components/manager-providers"; +import { DeploymentProviders } from "@/components/deployment-providers"; import "./globals.css"; const inter = Inter({ @@ -86,17 +86,8 @@ export default function RootLayout({ > Skip to main content - {process.env.MANAGER_MODE === "true" ? ( - {children} - ) : ( - {children} - )} + {children} ); } - -async function BusinessProviders({ children }: { children: React.ReactNode }) { - const { Providers } = await import("@/components/providers"); - return {children}; -} diff --git a/src/components/deployment-providers.tsx b/src/components/deployment-providers.tsx new file mode 100644 index 0000000..48434d1 --- /dev/null +++ b/src/components/deployment-providers.tsx @@ -0,0 +1,15 @@ +"use client"; + +import type { ReactNode } from "react"; +import { ManagerProviders } from "@/components/manager-providers"; +import { Providers } from "@/components/providers"; + +/** + * Keep the business provider graph behind a client boundary. This prevents + * the Manager server bundle from evaluating SessionProvider or its business + * client-side dependencies while still preserving the business provider + * behavior when the deployment mode is false. + */ +export function DeploymentProviders({ managerMode, children }: { managerMode: boolean; children: ReactNode }) { + return managerMode ? {children} : {children}; +}