23 lines
1008 B
TypeScript
23 lines
1008 B
TypeScript
import type { Metadata } from "next";
|
|
import { notFound } from "next/navigation";
|
|
import MelodyDetail from "@/components/public/melody-detail";
|
|
import { getActiveLocale, isLocale, type Locale } from "@/lib/i18n";
|
|
import { getPublishedMelody } from "@/lib/melody-queries";
|
|
|
|
type MelodyDetailPageProps = { params: { locale: string; slug: string } };
|
|
|
|
export async function generateMetadata({ params }: MelodyDetailPageProps): Promise<Metadata> {
|
|
if (!isLocale(params.locale)) return {};
|
|
const melody = await getPublishedMelody(params.slug);
|
|
if (!melody) return {};
|
|
return { title: getActiveLocale(params.locale as Locale) === "ar" ? melody.titleAr : melody.titleEn };
|
|
}
|
|
|
|
export default async function MelodyDetailPage({ params }: MelodyDetailPageProps) {
|
|
if (!isLocale(params.locale)) notFound();
|
|
const locale = getActiveLocale(params.locale as Locale);
|
|
const melody = await getPublishedMelody(params.slug);
|
|
if (!melody) notFound();
|
|
return <MelodyDetail locale={locale} melody={melody} />;
|
|
}
|