Refactor roadmap topic path

best-practices
Kamran Ahmed 2 years ago
parent 26f36a05f2
commit 1406458583
  1. 25
      src/pages/[roadmapId]/[...topicId].astro

@ -1,16 +1,25 @@
--- ---
import Breadcrumbs from '../components/Breadcrumbs.astro'; import Breadcrumbs from '../../components/Breadcrumbs.astro';
import RoadmapBanner from '../components/RoadmapBanner.astro'; import RoadmapBanner from '../../components/RoadmapBanner.astro';
import BaseLayout from '../layouts/BaseLayout.astro'; import BaseLayout from '../../layouts/BaseLayout.astro';
import { getTopicFiles, TopicFileType } from '../lib/topic'; import { getTopicFiles, TopicFileType } from '../../lib/topic';
export async function getStaticPaths() { export async function getStaticPaths() {
const topicPathMapping = await getTopicFiles(); const topicPathMapping = await getTopicFiles();
return Object.keys(topicPathMapping).map((topicSlug) => ({ return Object.keys(topicPathMapping).map((topicSlug) => {
params: { topicId: topicSlug.replace(/^\//, '') }, const topicDetails = topicPathMapping[topicSlug];
props: topicPathMapping[topicSlug], const roadmapId = topicDetails.roadmapId;
})); const topicId = topicSlug.replace(`/${roadmapId}/`, '');
return {
params: {
topicId,
roadmapId,
},
props: topicDetails,
};
});
} }
const { topicId } = Astro.params; const { topicId } = Astro.params;
Loading…
Cancel
Save