fix(web): restore login page design and add runtime config injection (#435)
Co-authored-by: Jason Woltje <jason@diversecanvas.com> Co-committed-by: Jason Woltje <jason@diversecanvas.com>
This commit was merged in pull request #435.
This commit is contained in:
@@ -10,9 +10,32 @@ export const metadata: Metadata = {
|
||||
description: "Mosaic Stack Web Application",
|
||||
};
|
||||
|
||||
/**
|
||||
* Runtime env vars injected as a synchronous script so client-side modules
|
||||
* can read them before React hydration. This allows Docker env vars to
|
||||
* override the build-time baked NEXT_PUBLIC_* values.
|
||||
*/
|
||||
function runtimeEnvScript(): string {
|
||||
const env: Record<string, string> = {};
|
||||
for (const key of [
|
||||
"NEXT_PUBLIC_API_URL",
|
||||
"NEXT_PUBLIC_ORCHESTRATOR_URL",
|
||||
"NEXT_PUBLIC_AUTH_MODE",
|
||||
]) {
|
||||
const value = process.env[key];
|
||||
if (value) {
|
||||
env[key] = value;
|
||||
}
|
||||
}
|
||||
return `window.__MOSAIC_ENV__=${JSON.stringify(env)};`;
|
||||
}
|
||||
|
||||
export default function RootLayout({ children }: { children: ReactNode }): React.JSX.Element {
|
||||
return (
|
||||
<html lang="en">
|
||||
<head>
|
||||
<script dangerouslySetInnerHTML={{ __html: runtimeEnvScript() }} />
|
||||
</head>
|
||||
<body>
|
||||
<ThemeProvider>
|
||||
<ErrorBoundary>
|
||||
|
||||
Reference in New Issue
Block a user