antoncoding/monarch

View on GitHub
app/layout.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import './global.css';

import { ToastContainer } from 'react-toastify';
import GoogleAnalytics from '@/components/GoogleAnalytics/GoogleAnalytics';
import RiskNotificationModal from '@/components/RiskNotificationModal';
import OnchainProviders from '@/OnchainProviders';

import { initAnalytics } from '@/utils/analytics';
import { inter, zen, monospace } from './fonts';
import { Providers } from './providers';
import type { Metadata } from 'next';

export const metadata: Metadata = {
  manifest: '/manifest.json',
  other: {
    boat: '0.17.0',
  },
};

// Start analytics before the App renders,
// so we can track page views and early events
initAnalytics();

/** Root layout to define the structure of every page
 * https://nextjs.org/docs/app/building-your-application/routing/pages-and-layouts
 */
export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="en" className={`${zen.variable} ${inter.variable} ${monospace.variable}`}>
      <body>
        <Providers>
          <OnchainProviders>
            {children}
            <RiskNotificationModal />
          </OnchainProviders>
          <ToastContainer position="bottom-right" bodyClassName="font-zen" />
        </Providers>
      </body>
      <GoogleAnalytics />
    </html>
  );
}