Spaces:
Running
Running
| import type { Metadata } from 'next'; | |
| import { Inter } from 'next/font/google'; | |
| import './globals.css'; | |
| import Sidebar from '@/components/Sidebar'; | |
| import { ThemeProvider } from '@/components/ThemeProvider'; | |
| import ConfirmModal from '@/components/ConfirmModal'; | |
| import SampleImageModal from '@/components/SampleImageModal'; | |
| import { Suspense } from 'react'; | |
| import AuthWrapper from '@/components/AuthWrapper'; | |
| export const dynamic = 'force-dynamic'; | |
| const inter = Inter({ subsets: ['latin'] }); | |
| export const metadata: Metadata = { | |
| title: 'Ostris - AI Toolkit', | |
| description: 'A toolkit for building AI things.', | |
| }; | |
| export default function RootLayout({ children }: { children: React.ReactNode }) { | |
| // Check if the AI_TOOLKIT_AUTH environment variable is set | |
| const authRequired = process.env.AI_TOOLKIT_AUTH ? true : false; | |
| return ( | |
| <html lang="en" className="dark"> | |
| <head> | |
| <meta name="apple-mobile-web-app-title" content="AI-Toolkit" /> | |
| </head> | |
| <body className={inter.className}> | |
| <ThemeProvider> | |
| <AuthWrapper authRequired={authRequired}> | |
| <div className="flex h-screen bg-gray-950"> | |
| <Sidebar /> | |
| <main className="flex-1 overflow-auto bg-gray-950 text-gray-100 relative"> | |
| <Suspense>{children}</Suspense> | |
| </main> | |
| </div> | |
| </AuthWrapper> | |
| </ThemeProvider> | |
| <ConfirmModal /> | |
| <SampleImageModal /> | |
| </body> | |
| </html> | |
| ); | |
| } | |