diff --git a/.astro/types.d.ts b/.astro/types.d.ts index f964fe0cf..03d7cc43f 100644 --- a/.astro/types.d.ts +++ b/.astro/types.d.ts @@ -1 +1,2 @@ /// +/// \ No newline at end of file diff --git a/src/pages/[roadmapId].json.ts b/src/pages/[roadmapId].json.ts index 16ad93c30..87a9fb935 100644 --- a/src/pages/[roadmapId].json.ts +++ b/src/pages/[roadmapId].json.ts @@ -11,9 +11,6 @@ export const prerender = false; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -// hack to make it work. TODO: Fix -const projectRoot = path.resolve(__dirname, '../..').replace(/dist$/, ''); - type RoadmapJson = { _id: string; title: string; diff --git a/src/pages/[roadmapId]/courses.astro b/src/pages/[roadmapId]/courses.astro index b72d68cae..6570657db 100644 --- a/src/pages/[roadmapId]/courses.astro +++ b/src/pages/[roadmapId]/courses.astro @@ -3,20 +3,9 @@ import RoadmapHeader from '../../components/RoadmapHeader.astro'; import BaseLayout from '../../layouts/BaseLayout.astro'; import { getOpenGraphImageUrl } from '../../lib/open-graph'; import { getProjectsByRoadmapId } from '../../lib/project'; -import { - listOfficialRoadmaps, - officialRoadmapDetails, -} from '../../queries/official-roadmap'; +import { officialRoadmapDetails } from '../../queries/official-roadmap'; -export const prerender = true; - -export async function getStaticPaths() { - const roadmaps = await listOfficialRoadmaps(); - - return roadmaps.map((roadmap) => ({ - params: { roadmapId: roadmap.slug }, - })); -} +export const prerender = false; interface Params extends Record { roadmapId: string; @@ -25,7 +14,9 @@ interface Params extends Record { const { roadmapId } = Astro.params as Params; const roadmapData = await officialRoadmapDetails(roadmapId); if (!roadmapData) { - return Astro.redirect('/404', 404); + Astro.response.status = 404; + Astro.response.statusText = 'Not found'; + return Astro.rewrite('/404'); } // update og for projects diff --git a/src/pages/[roadmapId]/index.astro b/src/pages/[roadmapId]/index.astro index 40356bbbd..bcf9f6982 100644 --- a/src/pages/[roadmapId]/index.astro +++ b/src/pages/[roadmapId]/index.astro @@ -16,21 +16,10 @@ import { RoadmapTitleQuestion } from '../../components/RoadmapTitleQuestion'; import ResourceProgressStats from '../../components/ResourceProgressStats.astro'; import { getProjectsByRoadmapId } from '../../lib/project'; import { CheckSubscriptionVerification } from '../../components/Billing/CheckSubscriptionVerification'; -import { - listOfficialRoadmaps, - officialRoadmapDetails, -} from '../../queries/official-roadmap'; +import { officialRoadmapDetails } from '../../queries/official-roadmap'; import { DateTime } from 'luxon'; -export const prerender = true; - -export async function getStaticPaths() { - const officialRoadmaps = await listOfficialRoadmaps(); - - return officialRoadmaps.map((roadmap) => ({ - params: { roadmapId: roadmap.slug }, - })); -} +export const prerender = false; interface Params extends Record { roadmapId: string; @@ -39,6 +28,8 @@ interface Params extends Record { const { roadmapId } = Astro.params as Params; const roadmapData = await officialRoadmapDetails(roadmapId); if (!roadmapData) { + Astro.response.status = 404; + Astro.response.statusText = 'Not found'; return Astro.rewrite('/404'); } diff --git a/src/pages/[roadmapId]/projects.astro b/src/pages/[roadmapId]/projects.astro index 94c0c184c..ccff751d7 100644 --- a/src/pages/[roadmapId]/projects.astro +++ b/src/pages/[roadmapId]/projects.astro @@ -6,20 +6,9 @@ import BaseLayout from '../../layouts/BaseLayout.astro'; import { getProjectsByRoadmapId } from '../../lib/project'; import { getOpenGraphImageUrl } from '../../lib/open-graph'; import { projectApi } from '../../api/project'; -import { - listOfficialRoadmaps, - officialRoadmapDetails, -} from '../../queries/official-roadmap'; +import { officialRoadmapDetails } from '../../queries/official-roadmap'; -export const prerender = true; - -export async function getStaticPaths() { - const roadmapIds = await listOfficialRoadmaps(); - - return roadmapIds.map((roadmap) => ({ - params: { roadmapId: roadmap.slug }, - })); -} +export const prerender = false; interface Params extends Record { roadmapId: string; @@ -28,6 +17,8 @@ interface Params extends Record { const { roadmapId } = Astro.params as Params; const roadmapData = await officialRoadmapDetails(roadmapId); if (!roadmapData) { + Astro.response.status = 404; + Astro.response.statusText = 'Not found'; return Astro.rewrite('/404'); } diff --git a/src/pages/[roadmapId]/svg.astro b/src/pages/[roadmapId]/svg.astro index d353d723e..19f86f45e 100644 --- a/src/pages/[roadmapId]/svg.astro +++ b/src/pages/[roadmapId]/svg.astro @@ -2,20 +2,9 @@ import { EditorRoadmap } from '../../components/EditorRoadmap/EditorRoadmap'; import SkeletonLayout from '../../layouts/SkeletonLayout.astro'; import { getOpenGraphImageUrl } from '../../lib/open-graph'; -import { - listOfficialRoadmaps, - officialRoadmapDetails, -} from '../../queries/official-roadmap'; +import { officialRoadmapDetails } from '../../queries/official-roadmap'; -export const prerender = true; - -export async function getStaticPaths() { - const roadmapIds = await listOfficialRoadmaps(); - - return roadmapIds.map((roadmap) => ({ - params: { roadmapId: roadmap.slug }, - })); -} +export const prerender = false; interface Params extends Record { roadmapId: string; @@ -24,6 +13,8 @@ interface Params extends Record { const { roadmapId } = Astro.params as Params; const roadmapData = await officialRoadmapDetails(roadmapId); if (!roadmapData) { + Astro.response.status = 404; + Astro.response.statusText = 'Not found'; return Astro.rewrite('/404'); } diff --git a/src/pages/projects/[projectId]/index.astro b/src/pages/projects/[projectId]/index.astro index 4fe963e04..038044ee2 100644 --- a/src/pages/projects/[projectId]/index.astro +++ b/src/pages/projects/[projectId]/index.astro @@ -11,17 +11,7 @@ import { ProjectStepper } from '../../../components/Projects/StatusStepper/Proje import { ProjectTrackingActions } from '../../../components/Projects/StatusStepper/ProjectTrackingActions'; import { ProjectTabs } from '../../../components/Projects/ProjectTabs'; -export const prerender = true; - -export async function getStaticPaths() { - const projects = await getAllProjects(); - - return projects - .map((project) => project.id) - .map((projectId) => ({ - params: { projectId }, - })); -} +export const prerender = false; interface Params extends Record { projectId: string; @@ -30,6 +20,12 @@ interface Params extends Record { const { projectId } = Astro.params as Params; const project = await getProjectById(projectId); +if (!project) { + Astro.response.status = 404; + Astro.response.statusText = 'Not found'; + return Astro.rewrite('/404'); +} + const projectData = project.frontmatter as ProjectFrontmatter; let jsonLdSchema: any[] = []; diff --git a/src/pages/projects/[projectId]/solutions.astro b/src/pages/projects/[projectId]/solutions.astro index 344f4a0a0..d533956db 100644 --- a/src/pages/projects/[projectId]/solutions.astro +++ b/src/pages/projects/[projectId]/solutions.astro @@ -9,18 +9,7 @@ import { ProjectTabs } from '../../../components/Projects/ProjectTabs'; import { ListProjectSolutions } from '../../../components/Projects/ListProjectSolutions'; import { ProjectSolutionModal } from '../../../components/Projects/ProjectSolutionModal'; -export const prerender = true; - -export async function getStaticPaths() { - const projects = await getAllProjects(); - - return projects - .filter((project) => !(project?.frontmatter?.hasNoSubmission || false)) - .map((project) => project.id) - .map((projectId) => ({ - params: { projectId }, - })); -} +export const prerender = false; interface Params extends Record { projectId: string; @@ -29,6 +18,12 @@ interface Params extends Record { const { projectId } = Astro.params as Params; const project = await getProjectById(projectId); +if (!project) { + Astro.response.status = 404; + Astro.response.statusText = 'Not found'; + return Astro.rewrite('/404'); +} + const projectData = project.frontmatter as ProjectFrontmatter; let jsonLdSchema: any[] = []; diff --git a/src/pages/projects/index.astro b/src/pages/projects/index.astro index 68f08a2a4..8e52067b7 100644 --- a/src/pages/projects/index.astro +++ b/src/pages/projects/index.astro @@ -6,6 +6,8 @@ import { ProjectsPage } from '../../components/Projects/ProjectsPage'; import { projectApi } from '../../api/project'; import { listOfficialRoadmaps } from '../../queries/official-roadmap'; +export const prerender = false; + const roadmapProjects = await getRoadmapsProjects(); const allRoadmapIds = Object.keys(roadmapProjects);