2026-08-15 18:42:06 +03:00

46 lines
1.4 KiB
TypeScript

import type { Metadata } from 'next';
import RacePageClient from '@/components/pages/RacePageClient';
import { getMod, getRace, getRaceUnits, getRaceBuildings } 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 async function RacePage({ params }: Props) {
const [mod, race, raceUnits, raceBuildings] = await Promise.all([
getMod(params.modId),
getRace(params.raceId),
getRaceUnits(params.modId, params.raceId),
getRaceBuildings(params.modId, params.raceId),
]);
return (
<RacePageClient
initialMod={mod}
initialRace={race}
raceUnits={raceUnits}
raceBuildings={raceBuildings}
/>
);
}