Files
modstagram-next/src/components/Layout.tsx
payacom 2d5505065b git
2026-09-09 10:19:27 +03:30

45 lines
1.6 KiB
TypeScript

"use client";
import { LanguageProvider } from "@/contexts/LanguageProvider";
import type { AppLanguage } from "@/lib/i18n/registry";
import { ThemeProvider } from "@/contexts/ThemeContext";
import { ReactQueryProvider } from "@/providers/ReactQueryProvider";
import { Toaster } from "react-hot-toast";
import BackgroundPrefetch from "@/components/BackgroundPrefetch";
import ScrollRestorationInit from "@/components/ScrollRestorationInit";
import TitleGuardian from "@/components/TitleGuardian";
import AuthSessionSync from "@/components/auth/AuthSessionSync";
import PwaInstallPrompt from "@/components/pwa/PwaInstallPrompt";
import PwaBootSplash from "@/components/pwa/PwaBootSplash";
import PwaHead from "@/components/PwaHead";
import NotificationBridge from "@/components/notifications/NotificationBridge";
import AnalyticsTracker from "@/components/AnalyticsTracker";
interface ILayoutProps {
children: React.ReactNode;
initialLanguage: AppLanguage;
}
function Layout({ children, initialLanguage }: ILayoutProps) {
return (
<ThemeProvider>
<LanguageProvider initialLanguage={initialLanguage}>
<ReactQueryProvider>
<PwaHead />
<PwaBootSplash />
<ScrollRestorationInit />
<TitleGuardian />
<Toaster />
<AuthSessionSync />
<PwaInstallPrompt />
<BackgroundPrefetch />
<NotificationBridge />
<AnalyticsTracker />
{children}
</ReactQueryProvider>
</LanguageProvider>
</ThemeProvider>
);
}
export default Layout;