import type { Metadata } from "next"; import { REPORT_PLACEHOLDER_ID } from "yt-dlp-transcript-common/lib/report/views"; import ReportArticle from "../../components/reports/ReportArticle"; import { EmptyState } from "../../components/reports/parts"; import { readReportView, reportIds, reportMetadata } from "../../lib/reports"; // /reports//: one report, from /reports//page.json. // Static: every published report is listed, nothing else resolves. A site with // none builds the one placeholder page (a static export refuses an empty // generateStaticParams), which says so. export const dynamicParams = false; export function generateStaticParams(): { reportId: string }[] { const ids = reportIds(); return (ids.length > 0 ? ids : [REPORT_PLACEHOLDER_ID]).map((reportId) => ({ reportId })); } type Params = { params: Promise<{ reportId: string }> }; export async function generateMetadata({ params }: Params): Promise { const view = readReportView((await params).reportId); if (!view) return { title: "No reports" }; return reportMetadata(view); } export default async function ReportPage({ params }: Params) { const view = readReportView((await params).reportId); if (!view) { return ( This site has not published a report yet. ); } return ; }