1
0
Fork 0
This repository has been archived on 2025-08-23. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
backup-websites-2024-01/pages/skoleni/[slug].tsx
Vojtech Mares c170415fd0 refactor: split components to multiple subdirs
subdirs
- homepage
- trainingpage
- layout
2023-01-12 09:13:36 +01:00

95 lines
2.1 KiB
TypeScript

import Head from "next/head";
import { useRouter } from "next/router";
import ErrorPage from "next/error";
import TrainingType from "@/types/training";
import { getAllTraining, getTrainingBySlug } from "@/lib/cms/training";
import markdownToHTML from "@/lib/markdownToHTML";
import { Header } from "@/components/layout/Header";
import { Footer } from "@/components/layout/Footer";
import { Training } from "@/components/trainingpage/Training";
type Props = {
training: TrainingType;
featuredTrainingList: TrainingType[];
};
const TrainingPage = ({ training, featuredTrainingList }: Props) => {
const router = useRouter();
console.log(!router.isFallback);
console.log(!training?.slug);
console.log(typeof training.draft === "undefined");
// if ((!router.isFallback && !training?.slug) || typeof training.draft === 'undefined') {
// return <ErrorPage statusCode={404} />
// }
return (
<>
<Head>
<title>
Školení {training.name} | Vojtěch Mareš - DevOps konzultant, lektor,
engineer
</title>
<meta
name="description"
content={`Školení ${training.name} | Vojtěch Mareš - DevOps konzultant, lektor, engineer`}
/>
</Head>
<main>
<Header />
<Training training={training} />
</main>
<Footer />
</>
);
};
export default TrainingPage;
type Params = {
params: {
slug: string;
};
};
export const getStaticProps = async ({ params }: Params) => {
const training = getTrainingBySlug(params.slug, [
"name",
"content",
"priceOpen",
"priceCompany",
"days",
"logo",
"content",
"draft",
"new",
"featured",
]);
const content = await markdownToHTML(training.content || "");
return {
props: {
training: {
...training,
content,
},
},
};
};
export const getStaticPaths = async () => {
const trainingList = getAllTraining(["slug"]);
return {
paths: trainingList.map((training) => {
return {
params: {
slug: training.slug,
},
};
}),
fallback: false,
};
};