25 lines
1.0 KiB
TypeScript
25 lines
1.0 KiB
TypeScript
import type { Metadata } from 'next';
|
|
import { notFound } from 'next/navigation';
|
|
import { CaseStudyContent } from '@/components/CaseStudyContent';
|
|
import { getAdjacentProjects, getProject, projectIds } from '@/data/projects';
|
|
|
|
type Props = { params: Promise<{ projectId: string }> };
|
|
|
|
export const dynamicParams = false;
|
|
export const generateStaticParams = () => projectIds.map((projectId) => ({ projectId }));
|
|
|
|
export async function generateMetadata({ params }: Props): Promise<Metadata> {
|
|
const { projectId } = await params;
|
|
const project = getProject('en', projectId);
|
|
if (!project) return {};
|
|
return { title: `${project.title} case study | Amirhossein Khalili`, description: project.caseStudy.introduction };
|
|
}
|
|
|
|
export default async function ProjectPage({ params }: Props) {
|
|
const { projectId } = await params;
|
|
const project = getProject('en', projectId);
|
|
const adjacent = getAdjacentProjects('en', projectId);
|
|
if (!project || !adjacent) notFound();
|
|
return <CaseStudyContent project={project} locale="en" {...adjacent} />;
|
|
}
|