All files / app layout.tsx

100% Statements 5/5
100% Branches 0/0
100% Functions 2/2
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33                  3x 51x 48x                   14x                      
import '@/app/global.css';
import { SpeedInsights } from '@vercel/speed-insights/next';
import { Analytics } from '@vercel/analytics/react';
import { GeistSans } from 'geist/font/sans';
import { GeistMono } from 'geist/font/mono';
import type { Metadata } from 'next';
import { headers } from 'next/headers';
import type { JSX, PropsWithChildren } from 'react';
 
export const generateMetadata = async (): Promise<Metadata> => {
  const readonlyHeaders = await headers();
  return {
    metadataBase: new URL(
      [readonlyHeaders.get('x-forwarded-proto'), readonlyHeaders.get('x-forwarded-host')].join(
        '://',
      ),
    ),
  };
};
 
export default function RootLayout({ children }: PropsWithChildren): JSX.Element {
  return (
    <html className={`${GeistSans.variable} ${GeistMono.variable}`} lang="en-US">
      {/* <body className="bg-[oklch(.1_0_0)]" /> */}
      <body className="bg-[#030303] font-extralight text-white print:bg-white">
        {children}
        <Analytics />
        <SpeedInsights />
      </body>
    </html>
  );
}