33 lines
948 B
TypeScript
33 lines
948 B
TypeScript
import type { Metadata } from 'next';
|
|
import RacePageClient from '@/components/pages/RacePageClient';
|
|
import { getMod, getRace } from '@/lib/api-server';
|
|
|
|
export const dynamic = 'force-dynamic';
|
|
|
|
interface Props {
|
|
params: { modId: string; raceId: string };
|
|
}
|
|
|
|
export async function generateMetadata({ params }: Props): Promise<Metadata> {
|
|
const [mod, race] = await Promise.all([getMod(params.modId), getRace(params.raceId)]);
|
|
if (!mod || !race) {
|
|
return { title: 'Race' };
|
|
}
|
|
const title = `${race.name} — ${mod.name}`;
|
|
const description = `${race.name} race in ${mod.name} mod. Units, buildings and stats.`;
|
|
return {
|
|
title,
|
|
description,
|
|
alternates: {
|
|
canonical: `/mod/${params.modId}/race/${params.raceId}`,
|
|
},
|
|
openGraph: {
|
|
title,
|
|
description,
|
|
},
|
|
};
|
|
}
|
|
|
|
export default function RacePage() {
|
|
return <RacePageClient />;
|
|
} |