|
import type { Viewport } from 'next' |
|
import I18nServer from './components/i18n-server' |
|
import BrowserInitor from './components/browser-initor' |
|
import SentryInitor from './components/sentry-initor' |
|
import { getLocaleOnServer } from '@/i18n/server' |
|
import './styles/globals.css' |
|
import './styles/markdown.scss' |
|
|
|
export const metadata = { |
|
title: 'Dify', |
|
} |
|
|
|
export const viewport: Viewport = { |
|
width: 'device-width', |
|
initialScale: 1, |
|
maximumScale: 1, |
|
viewportFit: 'cover', |
|
userScalable: false, |
|
} |
|
|
|
const LocaleLayout = ({ |
|
children, |
|
}: { |
|
children: React.ReactNode |
|
}) => { |
|
const locale = getLocaleOnServer() |
|
|
|
return ( |
|
<html lang={locale ?? 'en'} className="h-full" data-theme="light"> |
|
<head> |
|
<meta name="theme-color" content="#FFFFFF" /> |
|
<meta name="mobile-web-app-capable" content="yes" /> |
|
<meta name="apple-mobile-web-app-capable" content="yes" /> |
|
<meta name="apple-mobile-web-app-status-bar-style" content="default" /> |
|
</head> |
|
<body |
|
className="h-full select-auto" |
|
data-api-prefix={process.env.NEXT_PUBLIC_API_PREFIX} |
|
data-pubic-api-prefix={process.env.NEXT_PUBLIC_PUBLIC_API_PREFIX} |
|
data-public-edition={process.env.NEXT_PUBLIC_EDITION} |
|
data-public-support-mail-login={process.env.NEXT_PUBLIC_SUPPORT_MAIL_LOGIN} |
|
data-public-sentry-dsn={process.env.NEXT_PUBLIC_SENTRY_DSN} |
|
data-public-maintenance-notice={process.env.NEXT_PUBLIC_MAINTENANCE_NOTICE} |
|
data-public-site-about={process.env.NEXT_PUBLIC_SITE_ABOUT} |
|
data-public-text-generation-timeout-ms={process.env.NEXT_PUBLIC_TEXT_GENERATION_TIMEOUT_MS} |
|
> |
|
<BrowserInitor> |
|
<SentryInitor> |
|
<I18nServer>{children}</I18nServer> |
|
</SentryInitor> |
|
</BrowserInitor> |
|
</body> |
|
</html> |
|
) |
|
} |
|
|
|
export default LocaleLayout |
|
|