60 lines
1.9 KiB
TypeScript
60 lines
1.9 KiB
TypeScript
import type { Metadata } from "next"
|
|
import { GeistSans } from "geist/font/sans"
|
|
import { GeistMono } from "geist/font/mono"
|
|
import { Playfair_Display } from "next/font/google"
|
|
import "./globals.css"
|
|
import { Toaster } from "@/components/ui/toaster"
|
|
import { ThemeProvider } from "@/components/providers/theme-provider"
|
|
import { WishlistProvider } from "@/hooks/use-wishlist"
|
|
import { AuthProvider } from "@/lib/auth"
|
|
import { ReactNode } from 'react'
|
|
import Providers from '@/providers/Providers'
|
|
|
|
const playfair = Playfair_Display({
|
|
subsets: ['latin', 'cyrillic'],
|
|
variable: '--font-playfair',
|
|
display: 'swap',
|
|
})
|
|
|
|
// Метаданные сайта
|
|
export const metadata: Metadata = {
|
|
title: "Dressed for Success - бренд женской одежды",
|
|
description: "Натуральные ткани, утонченный дизайн, комфорт и элегантность. Создаем одежду, в которой удобно и красиво жить свою жизнь.",
|
|
}
|
|
|
|
import { LazyBgLoader } from "./LazyBgLoader";
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: {
|
|
children: ReactNode
|
|
}) {
|
|
return (
|
|
<html lang="ru" suppressHydrationWarning>
|
|
<body className={`${GeistSans.variable} ${GeistMono.variable} ${playfair.variable} font-sans antialiased`}>
|
|
<LazyBgLoader />
|
|
<Providers>
|
|
<ThemeProvider
|
|
attribute="class"
|
|
defaultTheme="light"
|
|
enableSystem={false}
|
|
disableTransitionOnChange
|
|
themes={['light', 'dark']}
|
|
value={{
|
|
light: 'light',
|
|
dark: 'dark'
|
|
}}
|
|
>
|
|
<AuthProvider>
|
|
<WishlistProvider>
|
|
{children}
|
|
<Toaster />
|
|
</WishlistProvider>
|
|
</AuthProvider>
|
|
</ThemeProvider>
|
|
</Providers>
|
|
</body>
|
|
</html>
|
|
)
|
|
}
|