-
{cantoInfo.chapters.map((ch) => (
-
Chapter {ch.number}
{ch.title}
))}
import Link from "next/link"; import { PageHeader } from "@/components/page-header"; import { notFound } from "next/navigation"; import { Card, CardContent } from "@/components/ui/card"; import { ExtractedVerseCount } from "../../extracted-verse-count"; import { getBookMeta } from "@/lib/api"; type ChapterInfo = { number: number; title: string; totalVerses: number; }; type CantoInfo = { number: number; title: string; totalChapters: number; chapters: ChapterInfo[]; }; export default async function CantoPage({ params, }: { params: Promise<{ canto: string }>; }) { const { canto } = await params; const cantoNum = parseInt(canto); const meta = await getBookMeta("sb"); if (!meta) notFound(); const cantos = (meta as unknown as { cantos: CantoInfo[] }).cantos; const cantoInfo = cantos.find((c) => c.number === cantoNum); if (!cantoInfo) notFound(); const totalVerses = cantoInfo.chapters.reduce( (sum, ch) => sum + ch.totalVerses, 0, ); return (
{cantoInfo.totalChapters} chapters ·{" "}
{ch.title}