import type { Metadata } from "next"; import Link from "next/link"; import { PageHeader } from "@/components/layout/page-header"; import { FindInPage } from "@/components/layout/find-in-page"; import { notFound } from "next/navigation"; import { getBookMeta, getSingleVerse, getChapterVerseIndex } from "@/lib/api"; import { ChapterViewer } from "@/app/(app)/(reader)/books/chapter-viewer"; import type { MobileNavGroup } from "@/components/layout/mobile-nav"; import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og"; export const dynamic = "force-dynamic"; type Sb1962Meta = { book: string; title: string; author: string; totalChapters: number; chapters: { number: number; title: string; totalVerses: number }[]; }; export async function generateMetadata({ params, searchParams, }: { params: Promise<{ chapter: string; verse: string }>; searchParams: Promise>; }): Promise { const { chapter, verse } = await params; const sp = await searchParams; const v = await getSingleVerse( "sb1962", null, parseInt(chapter), parseInt(verse), ); const paragraphs = v ? [v.translation, ...v.purport] : undefined; const quote = extractQuoteFromHl(sp, paragraphs); if (quote) { return buildOgMeta({ title: "Śrīmad-Bhāgavatam (1962)", detail: `Chapter ${chapter}, Verse ${verse}`, quote, }); } return ogForVerse("sb1962", { chapter: parseInt(chapter), verse: parseInt(verse), }); } export default async function VersePage({ params, }: { params: Promise<{ chapter: string; verse: string }>; }) { const { chapter, verse: verseParam } = await params; const meta = await getBookMeta("sb1962"); if (!meta) notFound(); const sb1962Meta = meta as unknown as Sb1962Meta; const chapterInfo = sb1962Meta.chapters?.find( (c) => c.number === parseInt(chapter), ); if (!chapterInfo?.title) notFound(); const title: string = chapterInfo.title; const verseIndex = await getChapterVerseIndex( "sb1962", null, parseInt(chapter), ); if (verseIndex.length === 0) notFound(); const requestedVerse = parseInt(verseParam); const verse = await getSingleVerse( "sb1962", null, parseInt(chapter), requestedVerse, ); if (!verse) notFound(); const mobileNavGroups: MobileNavGroup[] = [ { title: "Verses", items: verseIndex.map((v) => ({ slug: String(v.verse), label: v.verseEnd ? `Verse ${chapter}.${v.verse}–${v.verseEnd}` : `Verse ${chapter}.${v.verse}`, href: `/books/sb1962/${chapter}/${v.verse}`, type: "verse", })), }, ]; return (
← Śrīmad-Bhāgavatam (1962)

Chapter {chapter}: {title}

({ verse: v.verse, verseEnd: v.verseEnd ?? undefined, reference: v.reference, }))} book="sb1962" division={null} chapter={parseInt(chapter)} basePath={`/books/sb1962/${chapter}`} showBengali={false} mobileNavGroups={mobileNavGroups} mobileNavBookTitle={`Chapter ${chapter}: ${chapterInfo.title}`} />
); }