The commit refactors the import paths, streamlining the file structure. Removed unused imports and shifted a few components in the modules. Also, the translation setup in the FAQ page was improved for better readability and maintainability. Placeholder content has been added to policy pages as well.
55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
import { Cms } from '@kit/cms';
|
|
|
|
import { DocsNavigation } from '~/(marketing)/docs/_components/docs-navigation';
|
|
import { getDocs } from '~/(marketing)/docs/_lib/server/docs.loader';
|
|
import { createI18nServerInstance } from '~/lib/i18n/i18n.server';
|
|
|
|
async function DocsLayout({ children }: React.PropsWithChildren) {
|
|
const { resolvedLanguage } = await createI18nServerInstance();
|
|
const pages = await getDocs(resolvedLanguage);
|
|
|
|
return (
|
|
<div className={'flex'}>
|
|
<DocsNavigation pages={buildDocumentationTree(pages)} />
|
|
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
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<string, Cms.ContentItem> = {};
|
|
|
|
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);
|
|
}
|