| 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 |
|
|