import { notFound } from "next/navigation"; import { getProjectById } from "@/lib/projectsService"; import { ProjectDetailView } from "@/components/project-detail"; interface PageProps { params: Promise<{ id: string; }>; } /** * Página de detalle de proyecto * Ruta dinámica: /proyectos/[id] * * Muestra información completa del proyecto incluyendo: * - Header con información principal * - Estadísticas (progreso, presupuesto, fechas, tareas) * - Tabs con resumen, tareas y detalles * - Tabla de tareas con filtros y ordenación */ export default async function ProjectDetailPage({ params }: PageProps) { // Await params en Next.js 16 const resolvedParams = await params; const projectId = parseInt(resolvedParams.id); if (isNaN(projectId)) { notFound(); } const project = await getProjectById(projectId); if (!project) { notFound(); } return ; } // Metadata dinámica para SEO export async function generateMetadata({ params }: PageProps) { const resolvedParams = await params; const projectId = parseInt(resolvedParams.id); if (isNaN(projectId)) { return { title: "Proyecto no encontrado" }; } try { const project = await getProjectById(projectId); if (!project) { return { title: "Proyecto no encontrado" }; } return { title: `${project.name} - Proyecto`, description: project.description || `Detalles del proyecto ${project.ref}`, }; } catch { return { title: "Proyecto" }; } }