feat: add service detail page with storytelling style
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import { Metadata } from 'next';
|
||||
import { notFound } from 'next/navigation';
|
||||
import { SERVICES } from '@/lib/constants';
|
||||
import { ServiceDetailClient } from './client';
|
||||
|
||||
export async function generateStaticParams() {
|
||||
return SERVICES.map((service) => ({
|
||||
id: service.id,
|
||||
}));
|
||||
}
|
||||
|
||||
export async function generateMetadata({ params }: { params: Promise<{ id: string }> }): Promise<Metadata> {
|
||||
const { id } = await params;
|
||||
const service = SERVICES.find((s) => s.id === id);
|
||||
|
||||
if (!service) {
|
||||
return {
|
||||
title: '服务未找到',
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
title: `${service.title} - 睿新致远`,
|
||||
description: service.description,
|
||||
};
|
||||
}
|
||||
|
||||
export default async function ServiceDetailPage({ params }: { params: Promise<{ id: string }> }) {
|
||||
const { id } = await params;
|
||||
const service = SERVICES.find((s) => s.id === id);
|
||||
|
||||
if (!service) {
|
||||
notFound();
|
||||
}
|
||||
|
||||
return <ServiceDetailClient service={service} />;
|
||||
}
|
||||
Reference in New Issue
Block a user