Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

layout.tsx 3.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import RoutePrefixHandle from './routePrefixHandle'
  2. import type { Viewport } from 'next'
  3. import I18nServer from './components/i18n-server'
  4. import BrowserInitor from './components/browser-initor'
  5. import SentryInitor from './components/sentry-initor'
  6. import { getLocaleOnServer } from '@/i18n/server'
  7. import { TanstackQueryIniter } from '@/context/query-client'
  8. import { ThemeProvider } from 'next-themes'
  9. import './styles/globals.css'
  10. import './styles/markdown.scss'
  11. import GlobalPublicStoreProvider from '@/context/global-public-context'
  12. import { DatasetAttr } from '@/types/feature'
  13. export const viewport: Viewport = {
  14. width: 'device-width',
  15. initialScale: 1,
  16. maximumScale: 1,
  17. viewportFit: 'cover',
  18. userScalable: false,
  19. }
  20. const LocaleLayout = async ({
  21. children,
  22. }: {
  23. children: React.ReactNode
  24. }) => {
  25. const locale = await getLocaleOnServer()
  26. const datasetMap: Record<DatasetAttr, string | undefined> = {
  27. [DatasetAttr.DATA_API_PREFIX]: process.env.NEXT_PUBLIC_API_PREFIX,
  28. [DatasetAttr.DATA_PUBLIC_API_PREFIX]: process.env.NEXT_PUBLIC_PUBLIC_API_PREFIX,
  29. [DatasetAttr.DATA_MARKETPLACE_API_PREFIX]: process.env.NEXT_PUBLIC_MARKETPLACE_API_PREFIX,
  30. [DatasetAttr.DATA_MARKETPLACE_URL_PREFIX]: process.env.NEXT_PUBLIC_MARKETPLACE_URL_PREFIX,
  31. [DatasetAttr.DATA_PUBLIC_EDITION]: process.env.NEXT_PUBLIC_EDITION,
  32. [DatasetAttr.DATA_PUBLIC_SUPPORT_MAIL_LOGIN]: process.env.NEXT_PUBLIC_SUPPORT_MAIL_LOGIN,
  33. [DatasetAttr.DATA_PUBLIC_SENTRY_DSN]: process.env.NEXT_PUBLIC_SENTRY_DSN,
  34. [DatasetAttr.DATA_PUBLIC_MAINTENANCE_NOTICE]: process.env.NEXT_PUBLIC_MAINTENANCE_NOTICE,
  35. [DatasetAttr.DATA_PUBLIC_SITE_ABOUT]: process.env.NEXT_PUBLIC_SITE_ABOUT,
  36. [DatasetAttr.DATA_PUBLIC_TEXT_GENERATION_TIMEOUT_MS]: process.env.NEXT_PUBLIC_TEXT_GENERATION_TIMEOUT_MS,
  37. [DatasetAttr.DATA_PUBLIC_MAX_TOOLS_NUM]: process.env.NEXT_PUBLIC_MAX_TOOLS_NUM,
  38. [DatasetAttr.DATA_PUBLIC_MAX_PARALLEL_LIMIT]: process.env.NEXT_PUBLIC_MAX_PARALLEL_LIMIT,
  39. [DatasetAttr.DATA_PUBLIC_TOP_K_MAX_VALUE]: process.env.NEXT_PUBLIC_TOP_K_MAX_VALUE,
  40. [DatasetAttr.DATA_PUBLIC_INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH]: process.env.NEXT_PUBLIC_INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH,
  41. [DatasetAttr.DATA_PUBLIC_LOOP_NODE_MAX_COUNT]: process.env.NEXT_PUBLIC_LOOP_NODE_MAX_COUNT,
  42. [DatasetAttr.DATA_PUBLIC_MAX_ITERATIONS_NUM]: process.env.NEXT_PUBLIC_MAX_ITERATIONS_NUM,
  43. [DatasetAttr.DATA_PUBLIC_MAX_TREE_DEPTH]: process.env.NEXT_PUBLIC_MAX_TREE_DEPTH,
  44. [DatasetAttr.DATA_PUBLIC_ENABLE_WEBSITE_JINAREADER]: process.env.NEXT_PUBLIC_ENABLE_WEBSITE_JINAREADER,
  45. [DatasetAttr.DATA_PUBLIC_ENABLE_WEBSITE_FIRECRAWL]: process.env.NEXT_PUBLIC_ENABLE_WEBSITE_FIRECRAWL,
  46. [DatasetAttr.DATA_PUBLIC_ENABLE_WEBSITE_WATERCRAWL]: process.env.NEXT_PUBLIC_ENABLE_WEBSITE_WATERCRAWL,
  47. }
  48. return (
  49. <html lang={locale ?? 'en'} className="h-full" suppressHydrationWarning>
  50. <head>
  51. <meta name="theme-color" content="#FFFFFF" />
  52. <meta name="mobile-web-app-capable" content="yes" />
  53. <meta name="apple-mobile-web-app-capable" content="yes" />
  54. <meta name="apple-mobile-web-app-status-bar-style" content="default" />
  55. </head>
  56. <body
  57. className="color-scheme h-full select-auto"
  58. {...datasetMap}
  59. >
  60. <BrowserInitor>
  61. <SentryInitor>
  62. <TanstackQueryIniter>
  63. <ThemeProvider
  64. attribute='data-theme'
  65. defaultTheme='system'
  66. enableSystem
  67. disableTransitionOnChange
  68. >
  69. <I18nServer>
  70. <GlobalPublicStoreProvider>
  71. {children}
  72. </GlobalPublicStoreProvider>
  73. </I18nServer>
  74. </ThemeProvider>
  75. </TanstackQueryIniter>
  76. </SentryInitor>
  77. </BrowserInitor>
  78. <RoutePrefixHandle />
  79. </body>
  80. </html>
  81. )
  82. }
  83. export default LocaleLayout