Files
road-monitoring-ui/src/app/layout.tsx

56 lines
1.4 KiB
TypeScript

import type { Metadata } from 'next';
import { Geist_Mono, Poppins } from 'next/font/google';
import './globals.css';
import { ThemeProvider } from '@/providers/ThemeProvider';
import AppInitializer from '@/providers/AppInitializer';
import QueryProvider from '@/providers/QueryProvider';
import { Toaster } from '@/components/ui/sonner';
const poppins = Poppins({
variable: '--font-poppins',
subsets: ['latin'],
weight: ['400', '500', '600', '700'],
});
const geistMono = Geist_Mono({
variable: '--font-geist-mono',
subsets: ['latin'],
});
export const metadata: Metadata = {
title: {
default: 'RoadMonitor',
template: '%s | RoadMonitor',
},
description: 'Road infrastructure monitoring and pothole detection platform',
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en" suppressHydrationWarning>
<head>
<link rel="stylesheet" href="/flags/flags.css" />
</head>
<body className={`${poppins.variable} ${geistMono.variable} antialiased`}>
<ThemeProvider
attribute="class"
defaultTheme="system"
enableSystem
disableTransitionOnChange
>
<QueryProvider>
<AppInitializer>
{children}
<Toaster position="top-center" />
</AppInitializer>
</QueryProvider>
</ThemeProvider>
</body>
</html>
);
}