layout.tsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import I18nServer from './components/i18n-server'
  2. import BrowerInitor from './components/browser-initor'
  3. import SentryInitor from './components/sentry-initor'
  4. import { getLocaleOnServer } from '@/i18n/server'
  5. import './styles/globals.css'
  6. import './styles/markdown.scss'
  7. export const metadata = {
  8. title: 'Dify',
  9. }
  10. const LocaleLayout = ({
  11. children,
  12. }: {
  13. children: React.ReactNode
  14. }) => {
  15. const locale = getLocaleOnServer()
  16. return (
  17. <html lang={locale ?? 'en'} className="h-full">
  18. <body
  19. className="h-full"
  20. data-api-prefix={process.env.NEXT_PUBLIC_API_PREFIX}
  21. data-pubic-api-prefix={process.env.NEXT_PUBLIC_PUBLIC_API_PREFIX}
  22. data-public-edition={process.env.NEXT_PUBLIC_EDITION}
  23. data-public-sentry-dsn={process.env.NEXT_PUBLIC_SENTRY_DSN}
  24. data-public-maintenance-notice={process.env.NEXT_PUBLIC_MAINTENANCE_NOTICE}
  25. >
  26. <BrowerInitor>
  27. <SentryInitor>
  28. {/* @ts-expect-error Async Server Component */}
  29. <I18nServer locale={locale}>{children}</I18nServer>
  30. </SentryInitor>
  31. </BrowerInitor>
  32. </body>
  33. </html>
  34. )
  35. }
  36. export default LocaleLayout