2023-04-24 15:32:57 +02:00
|
|
|
import "#/styles/globals.scss";
|
2023-04-14 13:35:27 +02:00
|
|
|
import { AddressBar } from "#/ui/AddressBar";
|
|
|
|
|
import { GlobalNav } from "#/ui/GlobalNav";
|
2023-04-19 10:37:35 +02:00
|
|
|
import { Lato } from "next/font/google";
|
|
|
|
|
import Byline from "#/ui/Byline";
|
2023-04-19 14:56:01 +02:00
|
|
|
import { LayoutProviders } from "#/ui/LayoutProviders";
|
2023-04-20 14:39:51 +02:00
|
|
|
import { Analytics } from "@vercel/analytics/react";
|
2023-04-21 16:13:52 +02:00
|
|
|
import ThemeWrapper from "#/ui/ThemeWrapper";
|
2023-05-15 09:23:59 +02:00
|
|
|
import { getBrandingSettings } from "#/lib/zitadel";
|
2023-04-22 20:16:47 +02:00
|
|
|
import { server } from "../lib/zitadel";
|
2023-04-24 16:30:21 +02:00
|
|
|
import { LabelPolicyColors } from "#/utils/colors";
|
2023-04-03 13:39:51 +02:00
|
|
|
|
|
|
|
|
const lato = Lato({
|
2023-04-27 13:23:13 +02:00
|
|
|
weight: ["400", "700", "900"],
|
2023-04-14 13:35:27 +02:00
|
|
|
subsets: ["latin"],
|
2023-04-03 13:39:51 +02:00
|
|
|
});
|
|
|
|
|
|
2023-04-26 16:04:56 +02:00
|
|
|
export const revalidate = 60; // revalidate every minute
|
|
|
|
|
|
2023-04-22 20:16:47 +02:00
|
|
|
export default async function RootLayout({
|
2023-04-03 13:39:51 +02:00
|
|
|
children,
|
|
|
|
|
}: {
|
|
|
|
|
children: React.ReactNode;
|
|
|
|
|
}) {
|
2023-04-27 13:23:13 +02:00
|
|
|
// later only shown with dev mode enabled
|
|
|
|
|
const showNav = true;
|
|
|
|
|
|
2023-05-15 09:23:59 +02:00
|
|
|
const branding = await getBrandingSettings(server);
|
2023-04-24 16:30:21 +02:00
|
|
|
let partialPolicy: LabelPolicyColors | undefined;
|
2023-04-25 14:39:55 +02:00
|
|
|
console.log(branding);
|
2023-04-24 16:30:21 +02:00
|
|
|
if (branding) {
|
|
|
|
|
partialPolicy = {
|
|
|
|
|
backgroundColor: branding?.backgroundColor,
|
|
|
|
|
backgroundColorDark: branding?.backgroundColorDark,
|
|
|
|
|
primaryColor: branding?.primaryColor,
|
|
|
|
|
primaryColorDark: branding?.primaryColorDark,
|
|
|
|
|
warnColor: branding?.warnColor,
|
|
|
|
|
warnColorDark: branding?.warnColorDark,
|
|
|
|
|
fontColor: branding?.fontColor,
|
|
|
|
|
fontColorDark: branding?.fontColorDark,
|
|
|
|
|
};
|
|
|
|
|
}
|
2023-04-03 13:39:51 +02:00
|
|
|
return (
|
2023-04-19 14:56:01 +02:00
|
|
|
<html lang="en" className={`${lato.className}`} suppressHydrationWarning>
|
2023-04-03 13:39:51 +02:00
|
|
|
<head />
|
2023-04-19 14:56:01 +02:00
|
|
|
<body>
|
2023-04-24 16:30:21 +02:00
|
|
|
<ThemeWrapper branding={partialPolicy}>
|
2023-04-21 16:13:52 +02:00
|
|
|
<LayoutProviders>
|
2023-04-24 16:30:21 +02:00
|
|
|
<div className="h-screen overflow-y-scroll bg-background-light-600 dark:bg-background-dark-600 bg-[url('/grid-light.svg')] dark:bg-[url('/grid-dark.svg')]">
|
2023-04-27 13:23:13 +02:00
|
|
|
{showNav && <GlobalNav />}
|
2023-04-03 13:39:51 +02:00
|
|
|
|
2023-04-27 13:23:13 +02:00
|
|
|
<div className={`${showNav ? "lg:pl-72" : ""} pb-4`}>
|
2023-04-25 09:16:19 +02:00
|
|
|
<div className="mx-auto max-w-[440px] space-y-8 pt-20 lg:py-8">
|
2023-04-27 13:23:13 +02:00
|
|
|
{showNav && (
|
|
|
|
|
<div className="rounded-lg bg-vc-border-gradient dark:bg-dark-vc-border-gradient p-px shadow-lg shadow-black/5 dark:shadow-black/20">
|
|
|
|
|
<div className="rounded-lg bg-background-light-400 dark:bg-background-dark-500">
|
|
|
|
|
<AddressBar />
|
|
|
|
|
</div>
|
2023-04-21 16:13:52 +02:00
|
|
|
</div>
|
2023-04-27 13:23:13 +02:00
|
|
|
)}
|
2023-04-03 13:39:51 +02:00
|
|
|
|
2023-04-27 13:23:13 +02:00
|
|
|
<div className="rounded-lg bg-vc-border-gradient dark:bg-dark-vc-border-gradient p-px shadow-lg shadow-black/5 dark:shadow-black/20 mb-10">
|
2023-04-25 09:16:19 +02:00
|
|
|
<div className="rounded-lg bg-background-light-400 dark:bg-background-dark-500 px-8 py-12">
|
2023-04-21 16:13:52 +02:00
|
|
|
{children}
|
|
|
|
|
</div>
|
2023-04-19 14:56:01 +02:00
|
|
|
</div>
|
2023-04-03 13:39:51 +02:00
|
|
|
|
2023-04-27 13:23:13 +02:00
|
|
|
<div
|
|
|
|
|
className={`rounded-lg bg-vc-border-gradient dark:bg-dark-vc-border-gradient p-px shadow-lg shadow-black/5 dark:shadow-black/20 ${
|
|
|
|
|
showNav ? "" : "max-w-[440px] w-full fixed bottom-4"
|
|
|
|
|
}`}
|
|
|
|
|
>
|
2023-04-24 16:30:21 +02:00
|
|
|
<div className="rounded-lg bg-background-light-400 dark:bg-background-dark-500">
|
2023-04-21 16:13:52 +02:00
|
|
|
<Byline />
|
|
|
|
|
</div>
|
2023-04-19 14:56:01 +02:00
|
|
|
</div>
|
2023-04-19 10:37:35 +02:00
|
|
|
</div>
|
2023-04-03 13:39:51 +02:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2023-04-21 16:13:52 +02:00
|
|
|
</LayoutProviders>
|
|
|
|
|
</ThemeWrapper>
|
2023-04-20 14:39:51 +02:00
|
|
|
<Analytics />
|
2023-04-19 14:56:01 +02:00
|
|
|
</body>
|
2023-04-03 13:39:51 +02:00
|
|
|
</html>
|
|
|
|
|
);
|
|
|
|
|
}
|