35 lines
859 B
TypeScript
35 lines
859 B
TypeScript
import { blogPosts } from '@/lib/blog';
|
|
import Navbar from '@/components/Navbar';
|
|
import Footer from '@/components/Footer';
|
|
import PostContent from './PostContent';
|
|
import styles from './PostPage.module.css';
|
|
import Link from 'next/link';
|
|
|
|
export async function generateStaticParams() {
|
|
return blogPosts.map((post) => ({
|
|
slug: post.slug,
|
|
}));
|
|
}
|
|
|
|
export default async function BlogPostDetail({ params }: { params: Promise<{ slug: string }> }) {
|
|
const { slug } = await params;
|
|
const post = blogPosts.find((p) => p.slug === slug);
|
|
|
|
if (!post) {
|
|
return (
|
|
<div className={styles.notFound}>
|
|
<h1>POST NOT FOUND</h1>
|
|
<Link href="/blog">RETURN TO HUB</Link>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<main className={styles.main}>
|
|
<Navbar />
|
|
<PostContent post={post} slug={slug} />
|
|
<Footer />
|
|
</main>
|
|
);
|
|
}
|