41 lines
884 B
TypeScript
41 lines
884 B
TypeScript
import { Metadata } from "next"
|
|
|
|
import { serverClient } from "@/lib/trpc/server"
|
|
|
|
import { MetaData } from "@/types/components/metadata"
|
|
import { LangParams, PageArgs } from "@/types/params"
|
|
|
|
export async function generateMetadata({
|
|
params,
|
|
pageTitle,
|
|
}: PageArgs<LangParams> & {
|
|
pageTitle?: string
|
|
}): Promise<Metadata> {
|
|
const metaData: MetaData | never[] | null =
|
|
await serverClient().contentstack.metaData.get()
|
|
|
|
if (Array.isArray(metaData)) {
|
|
return {
|
|
title: pageTitle ?? "",
|
|
description: "",
|
|
openGraph: {
|
|
images: [],
|
|
},
|
|
}
|
|
}
|
|
const title = metaData?.title ?? pageTitle ?? ""
|
|
const description = metaData?.description ?? ""
|
|
const images =
|
|
metaData?.imageConnection?.edges?.map((edge) => ({
|
|
url: edge.node.url,
|
|
})) || []
|
|
|
|
return {
|
|
title,
|
|
description,
|
|
openGraph: {
|
|
images,
|
|
},
|
|
}
|
|
}
|