70 lines
2.7 KiB
TypeScript
70 lines
2.7 KiB
TypeScript
import interClass from '@gitroom/react/helpers/inter.font';
|
|
export const dynamic = 'force-dynamic';
|
|
import './global.scss';
|
|
import 'react-tooltip/dist/react-tooltip.css';
|
|
import '@copilotkit/react-ui/styles.css';
|
|
|
|
import LayoutContext from '@gitroom/frontend/components/layout/layout.context';
|
|
import { ReactNode } from 'react';
|
|
import { Chakra_Petch } from 'next/font/google';
|
|
import PlausibleProvider from 'next-plausible';
|
|
import clsx from 'clsx';
|
|
import { VariableContextComponent } from '@gitroom/react/helpers/variable.context';
|
|
import { Fragment } from 'react';
|
|
import { PHProvider } from '@gitroom/react/helpers/posthog';
|
|
import UtmSaver from '@gitroom/helpers/utils/utm.saver';
|
|
import { ToltScript } from '@gitroom/frontend/components/layout/tolt.script';
|
|
import { FacebookComponent } from '@gitroom/frontend/components/layout/facebook.component';
|
|
|
|
const chakra = Chakra_Petch({ weight: '400', subsets: ['latin'] });
|
|
|
|
export default async function AppLayout({ children }: { children: ReactNode }) {
|
|
const Plausible = !!process.env.STRIPE_PUBLISHABLE_KEY
|
|
? PlausibleProvider
|
|
: Fragment;
|
|
|
|
return (
|
|
<html className={interClass}>
|
|
<head>
|
|
<link rel="icon" href="/favicon.ico" sizes="any" />
|
|
</head>
|
|
<body className={clsx(chakra.className, 'text-primary !bg-primary')}>
|
|
<VariableContextComponent
|
|
storageProvider={
|
|
process.env.STORAGE_PROVIDER! as 'local' | 'cloudflare'
|
|
}
|
|
backendUrl={process.env.NEXT_PUBLIC_BACKEND_URL!}
|
|
plontoKey={process.env.NEXT_PUBLIC_POLOTNO!}
|
|
billingEnabled={!!process.env.STRIPE_PUBLISHABLE_KEY}
|
|
discordUrl={process.env.NEXT_PUBLIC_DISCORD_SUPPORT!}
|
|
frontEndUrl={process.env.FRONTEND_URL!}
|
|
isGeneral={!!process.env.IS_GENERAL}
|
|
authentikOIDC={!!process.env.AUTHENTIK_OIDC}
|
|
uploadDirectory={process.env.NEXT_PUBLIC_UPLOAD_STATIC_DIRECTORY!}
|
|
tolt={process.env.NEXT_PUBLIC_TOLT!}
|
|
facebookPixel={process.env.NEXT_PUBLIC_FACEBOOK_PIXEL!}
|
|
telegramBotName={process.env.TELEGRAM_BOT_NAME!}
|
|
neynarClientId={process.env.NEYNAR_CLIENT_ID!}
|
|
isSecured={!process.env.NOT_SECURED}
|
|
>
|
|
<ToltScript />
|
|
<FacebookComponent />
|
|
<Plausible
|
|
domain={!!process.env.IS_GENERAL ? 'postiz.com' : 'gitroom.com'}
|
|
>
|
|
<PHProvider
|
|
phkey={process.env.NEXT_PUBLIC_POSTHOG_KEY}
|
|
host={process.env.NEXT_PUBLIC_POSTHOG_HOST}
|
|
>
|
|
<LayoutContext>
|
|
<UtmSaver />
|
|
{children}
|
|
</LayoutContext>
|
|
</PHProvider>
|
|
</Plausible>
|
|
</VariableContextComponent>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|