layout.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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. >
  25. <BrowerInitor>
  26. <SentryInitor>
  27. {/* @ts-expect-error Async Server Component */}
  28. <I18nServer locale={locale}>{children}</I18nServer>
  29. </SentryInitor>
  30. </BrowerInitor>
  31. </body>
  32. </html>
  33. )
  34. }
  35. export default LocaleLayout