50 lines
1.4 KiB
TypeScript
50 lines
1.4 KiB
TypeScript
export const dynamic = "force-dynamic";
|
|
|
|
import type { Metadata } from "next";
|
|
import { notFound } from "next/navigation";
|
|
import { getTranscriptionsByBook } from "@/lib/transcriptions";
|
|
import { bookTitle } from "@/lib/book-reference";
|
|
import { buildOgMeta } from "@/lib/og";
|
|
import { TranscriptionBookBrowser } from "./book-browser";
|
|
|
|
export async function generateMetadata({
|
|
params,
|
|
}: {
|
|
params: Promise<{ book: string }>;
|
|
}): Promise<Metadata> {
|
|
const { book } = await params;
|
|
const title = bookTitle(book);
|
|
if (!title) return {};
|
|
const transcriptions = await getTranscriptionsByBook(book.toUpperCase());
|
|
return buildOgMeta({
|
|
title: "Transcriptions",
|
|
detail: `${transcriptions.length} lectures on ${title}`,
|
|
quote: `Śrīla Prabhupāda's lectures on ${title}, browsable by chapter — the living voice of the Founder-Ācārya preserved in text.`,
|
|
});
|
|
}
|
|
|
|
export default async function TranscriptionsByBookPage({
|
|
params,
|
|
}: {
|
|
params: Promise<{ book: string }>;
|
|
}) {
|
|
const { book } = await params;
|
|
const code = book.toUpperCase();
|
|
const title = bookTitle(code);
|
|
if (!title) notFound();
|
|
|
|
const transcriptions = await getTranscriptionsByBook(code);
|
|
if (transcriptions.length === 0) notFound();
|
|
|
|
return (
|
|
<div className="min-h-screen bg-background">
|
|
<TranscriptionBookBrowser
|
|
transcriptions={transcriptions}
|
|
code={code}
|
|
title={title}
|
|
totalCount={transcriptions.length}
|
|
/>
|
|
</div>
|
|
);
|
|
}
|