import { Cms } from '@kit/cms'; import { createI18nServerInstance } from '~/lib/i18n/i18n.server'; // local imports import { DocsNavigation } from './_components/docs-navigation'; import { getDocs } from './_lib/server/docs.loader'; async function DocsLayout({ children }: React.PropsWithChildren) { const { resolvedLanguage } = await createI18nServerInstance(); const pages = await getDocs(resolvedLanguage); return (
{children}
); } export default DocsLayout; // we want to place all the children under their parent // based on the property parentId function buildDocumentationTree(pages: Cms.ContentItem[]) { const tree: Cms.ContentItem[] = []; const map: Record = {}; pages.forEach((page) => { map[page.id] = page; }); pages.forEach((page) => { if (page.parentId) { const parent = map[page.parentId]; if (!parent) { return; } if (!parent.children) { parent.children = []; } parent.children.push(page); // sort children by order parent.children.sort((a, b) => a.order - b.order); } else { tree.push(page); } }); return tree.sort((a, b) => a.order - b.order); }