Skip to content

Commit

Permalink
Test
Browse files Browse the repository at this point in the history
  • Loading branch information
cdedreuille committed Jun 19, 2024
1 parent 6400416 commit 5b19503
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 38 deletions.
38 changes: 1 addition & 37 deletions apps/frontpage/app/docs/[[...slug]]/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Metadata } from 'next';
import { Header, Footer, Container } from '@repo/ui';
import Image from 'next/image';
import { TreeProps, fetchGithubCount, latestVersion } from '@repo/utils';
import { fetchGithubCount, latestVersion } from '@repo/utils';
import { Sidebar } from '../../../components/docs/sidebar/sidebar';
import { TableOfContent } from '../../../components/docs/table-of-content';
import { NavDocs } from '../../../components/docs/sidebar/docs-nav';
Expand All @@ -10,49 +10,13 @@ import { DocsProvider } from '../provider';
import { getVersion } from '../../../lib/get-version';
import { getPageData } from '../../../lib/get-page';
import { Submenu } from '../../../components/docs/submenu';
import { Suspense } from 'react';
import Loading from './loading';

export const metadata: Metadata = {
title: 'Storybook',
description:
"Storybook is a frontend workshop for building UI components and pages in isolation. Thousands of teams use it for UI development, testing, and documentation. It's open source and free.",
};

const latestVersionId = latestVersion.id;

export const generateStaticParams = () => {
const result: { slug: string[] }[] = [];
const tree = generateDocsTree();

const getSlugs = (data: TreeProps[]) => {
data.forEach((item) => {
if ('slug' in item) {
const newSlug = item.slug.replace('/docs/', '').split('/');
const { id: versionId, inSlug: versionInSlug } = getVersion(newSlug);

const isLatest = versionId === latestVersionId;

if (isLatest) {
// Remove the version
newSlug.shift();
} else if (versionInSlug) {
newSlug[0] = versionInSlug;
}
result.push({
slug: newSlug,
});
}
if (item.children) {
getSlugs(item.children);
}
});
};
getSlugs(tree);

return result;
};

export default async function Layout({
children,
params: { slug },
Expand Down
37 changes: 36 additions & 1 deletion apps/frontpage/app/docs/[[...slug]]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,19 +1,54 @@
import { notFound } from 'next/navigation';
import Link from 'next/link';
import { latestVersion, cn } from '@repo/utils';
import { latestVersion, cn, TreeProps } from '@repo/utils';
import { getVersion } from '../../../lib/get-version';
import { getPageData } from '../../../lib/get-page';
import { Renderers } from '../../../components/docs/renderers';
import { DocsFooter } from '../../../components/docs/footer/footer';
import { Suspense } from 'react';
import Loading from './loading';
import { generateDocsTree } from '../../../lib/get-tree';

interface PageProps {
params: {
slug: string[];
};
}

const latestVersionId = latestVersion.id;

export const generateStaticParams = () => {
const result: { slug: string[] }[] = [];
const tree = generateDocsTree();

const getSlugs = (data: TreeProps[]) => {
data.forEach((item) => {
if ('slug' in item) {
const newSlug = item.slug.replace('/docs/', '').split('/');
const { id: versionId, inSlug: versionInSlug } = getVersion(newSlug);

const isLatest = versionId === latestVersionId;

if (isLatest) {
// Remove the version
newSlug.shift();
} else if (versionInSlug) {
newSlug[0] = versionInSlug;
}
result.push({
slug: newSlug,
});
}
if (item.children) {
getSlugs(item.children);
}
});
};
getSlugs(tree);

return result;
};

export default async function Page({ params: { slug } }: PageProps) {
const activeVersion = getVersion(slug);
const isLatest = activeVersion.id === latestVersion.id;
Expand Down

0 comments on commit 5b19503

Please sign in to comment.