Files
ocenka-web/src/app/layout.tsx
2025-12-14 13:18:48 +03:00

62 lines
1.5 KiB
TypeScript

import type { Metadata } from 'next';
import { ReactNode } from 'react';
import { Montserrat, Roboto } from 'next/font/google';
import '@core/styles/globals.scss';
import '@core/styles/reset.scss';
import {
CookieNotice,
Footer,
Header,
MobileCallback,
ScrollToTop,
YandexMetrika,
} from '@/widgets';
import { ModalProvider } from '@core/providers/modal-provider';
import { Toaster } from 'react-hot-toast';
const roboto = Roboto({
subsets: ['cyrillic'],
weight: ['300', '400', '500', '600', '700'],
variable: '--font-roboto',
});
const montseratt = Montserrat({
subsets: ['cyrillic'],
weight: ['300', '400', '500', '600', '700'],
variable: '--font-montseratt',
});
export const metadata: Metadata = {
icons: {
icon: [
{ url: '/favicon.ico' },
{ url: '/favicon-16x16.png', sizes: '16x16', type: 'image/png' },
{ url: '/favicon-32x32.png', sizes: '32x32', type: 'image/png' },
{ url: '/favicon.svg', type: 'image/svg+xml' },
],
apple: '/apple-touch-icon.png',
},
manifest: '/site.webmanifest',
};
export default function RootLayout({
children,
}: Readonly<{ children: ReactNode }>) {
return (
<html lang='en'>
<body className={`${roboto.variable} ${montseratt.variable}`}>
<ModalProvider>
<Header />
<main>{children}</main>
<Footer />
<MobileCallback />
</ModalProvider>
<ScrollToTop />
<Toaster />
<CookieNotice />
<YandexMetrika />
</body>
</html>
);
}