import type { Metadata, 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 { TanstackQueryIniter } from '@/context/query-client' import './styles/globals.css' import './styles/markdown.scss' import GlobalPublicStoreProvider from '@/context/global-public-context' import type { SystemFeatures } from '@/types/feature' import { defaultSystemFeatures } from '@/types/feature' import { API_PREFIX } from '@/config' export const viewport: Viewport = { width: 'device-width', initialScale: 1, maximumScale: 1, viewportFit: 'cover', userScalable: false, } export async function generateMetadata(): Promise { const ret = await fetch(`${API_PREFIX}/system-features`, { cache: 'no-cache' }).then(res => res.json()) const config: SystemFeatures = { ...defaultSystemFeatures, ...ret.data } if (config.branding.enabled) { return { title: { template: `%s - ${config.branding.application_title}`, default: config.branding.application_title }, icons: config.branding.favicon, } } return { title: { template: '%s - Dify', default: 'Dify', }, } } const LocaleLayout = ({ children, }: { children: React.ReactNode }) => { const locale = getLocaleOnServer() return ( {children} ) } export default LocaleLayout