Files
web/utils/generateMetadata.ts

38 lines
900 B
TypeScript

import { Metadata } from "next"
import { serverClient } from "@/lib/trpc/server"
import { MetaData } from "@/types/components/metadata"
export async function generateMetadata(): Promise<Metadata> {
const metaData: MetaData | never[] | null =
await serverClient().contentstack.metaData.get()
const breadcrumbs = await serverClient().contentstack.breadcrumbs.get()
const pageTitle = breadcrumbs?.at(-1)?.title
if (Array.isArray(metaData)) {
return {
title: pageTitle ?? "",
description: "",
openGraph: {
images: [],
},
}
}
const title = pageTitle ?? metaData?.title ?? "" // Use pageTitle first
const description = metaData?.description ?? ""
const images =
metaData?.imageConnection?.edges?.map((edge) => ({
url: edge.node.url,
})) || []
return {
title,
description,
openGraph: {
images,
},
}
}