'use client'; import { CaretRightIcon } from '@radix-ui/react-icons'; import { AlertDialog, Button, Flex, Text, Theme } from '@radix-ui/themes'; import '@radix-ui/themes/styles.css'; import { config } from 'dotenv'; import { Roboto_Flex } from 'next/font/google'; import { usePathname } from 'next/navigation'; import { ReactNode, useEffect, useState } from 'react'; import { SkyLine } from '../assets/art/SkyLine'; import { Analytics } from '../components/Analytics'; import Navbar from '../components/Navbar'; import PageWrapper from '../components/PageWrapper'; import isDev from '../core/blitzkrieg/isDev'; import { isLocalhost } from '../core/blitzkrieg/isLocalhost'; import { useApp } from '../stores/app'; import { mintTheme } from '../themes/mint'; config(); const DEV_BUILD_AGREEMENT_COOLDOWN = 8 * 24 * 60 * 60 * 1000; interface RootLayoutProps { children: ReactNode; } const robotoFlex = Roboto_Flex({ subsets: ['latin'], display: 'swap', }); export default function RootLayout({ children }: RootLayoutProps) { const pathname = usePathname(); const isEmbed = pathname.split('/')[1] === 'embeds'; const [showDevBuildAlert, setShowDevBuildAlert] = useState(false); useEffect(() => { setShowDevBuildAlert( isDev() && !isLocalhost() && Date.now() - useApp.getState().devBuildAgreementTime >= DEV_BUILD_AGREEMENT_COOLDOWN, ); }, []); return ( Blitzkrieg {!isEmbed && } Experimental version! This version may have a lot of issues. Report issues to{' '} the official Discord server . Also consider using{' '} the more stable release version . You will be asked again in 8 days. {children} {!isEmbed && ( Blitzkrieg. Free forever. For everyone. Consider supporting today 🍀 )} ); }