9451814ca4
refactor: 重构页面结构和导航逻辑 fix: 修复移动端菜单导航和滚动行为 perf: 优化图片加载性能和资源请求 test: 添加端到端测试和性能测试用例 docs: 更新.gitignore文件 chore: 更新依赖和配置 style: 优化代码格式和类型安全 ci: 调整Playwright测试超时时间 build: 更新Next.js配置和构建选项
38 lines
962 B
TypeScript
38 lines
962 B
TypeScript
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={JSON.parse(JSON.stringify(service))} />;
|
|
}
|