diff --git a/src/app/(main)/[slug]/page.tsx b/src/app/(main)/[slug]/page.tsx index b6e529d..7f75f56 100644 --- a/src/app/(main)/[slug]/page.tsx +++ b/src/app/(main)/[slug]/page.tsx @@ -15,6 +15,7 @@ export async function generateMetadata({ params }: { params: Promise<{ slug: str let publishedAt = ""; let updatedAt = ""; let imgUrl = ""; + let createdByName = ""; const slug = (await params).slug; const blog = await fetchBlogDetail(slug); @@ -26,6 +27,9 @@ export async function generateMetadata({ params }: { params: Promise<{ slug: str imgUrl = blog.imgUrl; publishedAt = blog.data.createdAt; updatedAt = blog.data.updatedAt; + if (!!blog?.data?.createdBy && typeof blog.data.createdBy !== "number") { + createdByName = blog.data.createdBy?.name ?? ""; + } } else { // check for page data when blog is not found const page = await fetchPageBySlug({ slug }); @@ -35,22 +39,35 @@ export async function generateMetadata({ params }: { params: Promise<{ slug: str imgUrl = page.heroImg?.url; publishedAt = page.createdAt; updatedAt = page.updatedAt; + + if (!!page?.createdBy && typeof page.createdBy !== "number") { + createdByName = page?.createdBy?.name ?? ""; + } } } defaultMetadata.title = title; defaultMetadata.description = description; if (!!defaultMetadata.openGraph) { - defaultMetadata.openGraph.title = title; // @ts-ignore defaultMetadata.openGraph.type = "article"; - defaultMetadata.openGraph.description = description; defaultMetadata.openGraph.title = title; + defaultMetadata.openGraph.description = description; defaultMetadata.openGraph.images = !!imgUrl ? { url: imgUrl } : undefined; } + defaultMetadata.twitter = { + card: "summary_large_image", + title: title, + description: description, + images: !!imgUrl ? { url: imgUrl } : undefined, + }; defaultMetadata.other = { "article:published_time": publishedAt, "article:modified_time": updatedAt, + "twitter:label1": "Written by", + "twitter:data1": !!createdByName ? createdByName : "Admin", + "twitter:label2": "Est. reading time", + "twitter:data2": "3 minutes", }; return defaultMetadata;