37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import type { Metadata } from 'next';
|
|
import { ThemeProvider } from 'next-themes';
|
|
import { Inter } from 'next/font/google';
|
|
import { Toaster } from 'sonner';
|
|
|
|
import { Footer } from '@/components/layout/footer.js';
|
|
import { Nav } from '@/components/layout/nav.js';
|
|
|
|
import './globals.css';
|
|
|
|
const inter = Inter({
|
|
subsets: ['latin'],
|
|
display: 'swap',
|
|
variable: '--font-inter',
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: 'Energy & AI Dashboard',
|
|
description:
|
|
'Interactive dashboard visualizing how AI datacenter buildout is driving regional electricity demand and energy prices',
|
|
};
|
|
|
|
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
return (
|
|
<html lang="en" className={inter.variable} suppressHydrationWarning>
|
|
<body className="flex min-h-dvh flex-col overflow-x-hidden font-sans antialiased">
|
|
<ThemeProvider attribute="class" defaultTheme="dark" enableSystem={false} disableTransitionOnChange>
|
|
<Nav />
|
|
<main className="mx-auto w-full max-w-350 flex-1">{children}</main>
|
|
<Footer />
|
|
<Toaster theme="dark" richColors position="bottom-right" />
|
|
</ThemeProvider>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|