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

49 lines
1.6 KiB
TypeScript

import type { Metadata } from 'next';
import BuildingPageClient from '@/components/pages/BuildingPageClient';
import { getBuilding, getMod } from '@/lib/api-server';
import { IBuilding } from '@/src/types/IBuilding';
import { IMod } from '@/src/types/Imod';
export const dynamic = 'force-dynamic';
interface Props {
params: { modId: string; raceId: string; buildingId: string };
}
export async function generateMetadata({ params }: Props): Promise<Metadata> {
const [mod, building] = await Promise.all([getMod(params.modId), getBuilding(params.buildingId)]);
if (!mod || !building) {
return { title: 'Building' };
}
let buildingName = building.name;
if (!buildingName) {
buildingName = building.filename.replaceAll('_', ' ').replace('.rgd', '');
}
const title = `${buildingName}${mod.name}`;
const description = `${buildingName} building in ${mod.name} mod. Stats, production, researches.`;
return {
title,
description,
alternates: {
canonical: `/mod/${params.modId}/race/${params.raceId}/building/${params.buildingId}`,
},
openGraph: {
title,
description,
},
};
}
export default async function BuildingPage({ params }: Props) {
const [mod, building] = await Promise.all([
getMod(params.modId),
getBuilding(params.buildingId),
]);
return (
<BuildingPageClient
key={params.buildingId}
initialBuilding={building as IBuilding | null}
initialMod={mod as IMod | null}
/>
);
}