import { type ReactNode } from 'react'; import { source } from '@/lib/source'; import { DocsLayout } from 'fumadocs-ui/layouts/notebook'; import { baseOptions } from '@/app/layout.config'; import { t, getLocalizedPath, i18n } from '@/lib/i18n'; import LogoLight from '@/components/docs/logo'; import LogoDark from '@/components/docs/logoDark'; import '@/app/global.css'; import { CustomSidebarComponents } from '@/components/sideBar'; import { SidebarKeepOpen } from '@/components/sidebarKeepOpen'; import FeishuLogoLight from '@/components/docs/feishuLogoLIght'; import FeishuLogoDark from '@/components/docs/feishuLogoDark'; import GithubLogoLight from '@/components/docs/githubLogoLight'; import GithubLogoDark from '@/components/docs/githubLogoDark'; import { BookOpen, Code, Lightbulb, CircleHelp, Scale, History, Server } from 'lucide-react'; export default async function Layout({ params, children }: { params: Promise<{ lang: string }>; children: ReactNode; }) { const { lang } = await params; const iconClass = 'size-4'; const tab = [ { icon: , title: t('common:introduction', lang), url: getLocalizedPath('/docs/introduction', lang) }, { icon: , title: t('common:use-cases', lang), url: getLocalizedPath('/docs/use-cases', lang) }, { icon: , title: t('common:selfHost', lang), url: getLocalizedPath('/docs/self-host', lang) }, { icon: , title: t('common:api_reference', lang), url: getLocalizedPath('/docs/openapi', lang) }, { icon: , title: t('common:faq', lang), url: getLocalizedPath('/docs/faq', lang) } ]; const tabUrls = tab.map((t) => t.url); return (
), mode: 'top' }} links={[ { type: 'icon', icon: (
), url: 'https://oss.laf.run/otnvvf-imgs/fastgpt-feishu1.png', text: '飞书群' }, { type: 'icon', icon: (
), url: 'https://github.com/labring/FastGPT', text: 'github' } ]} tree={source.pageTree[lang] || source.pageTree[i18n.defaultLanguage]} searchToggle={{ enabled: true }} sidebar={{ tabs: tab, collapsible: false, components: CustomSidebarComponents }} tabMode="sidebar" > {children}
); }