1
0
mirror of https://github.com/kamranahmedse/developer-roadmap.git synced 2025-09-25 16:39:02 +02:00

feat: roadmap with courses

This commit is contained in:
Arik Chakma
2025-08-28 21:35:44 +06:00
parent e9cf922bfa
commit 3fd0cfa14d
2 changed files with 13 additions and 7 deletions

View File

@@ -52,10 +52,7 @@ const nounTitle =
const seoDescription = `Seeking ${nounTitle.toLowerCase()} courses to enhance your skills? Explore our top free and paid courses to help you become a ${nounTitle} expert!`; const seoDescription = `Seeking ${nounTitle.toLowerCase()} courses to enhance your skills? Explore our top free and paid courses to help you become a ${nounTitle} expert!`;
const projects = await getProjectsByRoadmapId(roadmapId); const projects = await getProjectsByRoadmapId(roadmapId);
const courses = roadmapData.courses || []; const courses = roadmapData?.courses || [];
const question = roadmapData?.questions?.find(
(question) => question.type === 'main',
);
--- ---
<BaseLayout <BaseLayout

View File

@@ -72,24 +72,33 @@ export interface OfficialRoadmapDocument {
questions?: OfficialRoadmapQuestion[]; questions?: OfficialRoadmapQuestion[];
relatedRoadmaps?: string[]; relatedRoadmaps?: string[];
courses?: OfficialRoadmapCourse[]; courses?: string[];
createdAt: Date; createdAt: Date;
updatedAt: Date; updatedAt: Date;
} }
export type OfficialRoadmapWithCourses = Omit<
OfficialRoadmapDocument,
'courses'
> & {
courses: OfficialRoadmapCourse[];
};
export function officialRoadmapOptions(slug: string) { export function officialRoadmapOptions(slug: string) {
return queryOptions({ return queryOptions({
queryKey: ['official-roadmap', slug], queryKey: ['official-roadmap', slug],
queryFn: () => { queryFn: () => {
return httpGet<OfficialRoadmapDocument>(`/v1-official-roadmap/${slug}`); return httpGet<OfficialRoadmapWithCourses>(
`/v1-official-roadmap/${slug}`,
);
}, },
}); });
} }
export async function officialRoadmapDetails(roadmapSlug: string) { export async function officialRoadmapDetails(roadmapSlug: string) {
try { try {
const roadmap = await httpGet<OfficialRoadmapDocument>( const roadmap = await httpGet<OfficialRoadmapWithCourses>(
`/v1-official-roadmap/${roadmapSlug}`, `/v1-official-roadmap/${roadmapSlug}`,
); );