build ok,
This commit is contained in:
52
002_source/cms/src/app/layout.tsx
Normal file
52
002_source/cms/src/app/layout.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
import * as React from 'react';
|
||||
import type { Viewport } from 'next';
|
||||
|
||||
import '@/styles/global.css';
|
||||
|
||||
import { config } from '@/config';
|
||||
import { applyDefaultSettings } from '@/lib/settings/apply-default-settings';
|
||||
import { getSettings as getPersistedSettings } from '@/lib/settings/get-settings';
|
||||
import { UserProvider } from '@/contexts/auth/user-context';
|
||||
import { SettingsProvider } from '@/contexts/settings';
|
||||
import { Analytics } from '@/components/core/analytics';
|
||||
import { I18nProvider } from '@/components/core/i18n-provider';
|
||||
import { LocalizationProvider } from '@/components/core/localization-provider';
|
||||
import { SettingsButton } from '@/components/core/settings/settings-button';
|
||||
import { ThemeProvider } from '@/components/core/theme-provider/theme-provider';
|
||||
import { Toaster } from '@/components/core/toaster';
|
||||
|
||||
export const viewport = {
|
||||
width: 'device-width',
|
||||
initialScale: 1,
|
||||
themeColor: config.site.themeColor,
|
||||
} satisfies Viewport;
|
||||
|
||||
interface LayoutProps {
|
||||
children: React.ReactNode;
|
||||
}
|
||||
|
||||
export default async function Layout({ children }: LayoutProps): Promise<React.JSX.Element> {
|
||||
const settings = applyDefaultSettings(await getPersistedSettings());
|
||||
|
||||
return (
|
||||
<html data-mui-color-scheme={settings.colorScheme} lang="en">
|
||||
<body>
|
||||
<Analytics>
|
||||
<LocalizationProvider>
|
||||
<UserProvider>
|
||||
<SettingsProvider settings={settings}>
|
||||
<I18nProvider language="en">
|
||||
<ThemeProvider>
|
||||
{children}
|
||||
<SettingsButton />
|
||||
<Toaster position="bottom-right" />
|
||||
</ThemeProvider>
|
||||
</I18nProvider>
|
||||
</SettingsProvider>
|
||||
</UserProvider>
|
||||
</LocalizationProvider>
|
||||
</Analytics>
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
}
|
Reference in New Issue
Block a user