From e8cb280326944a20a5f3495e71389dba8e86bdb5 Mon Sep 17 00:00:00 2001 From: RizqiSyahrendra Date: Mon, 10 Mar 2025 16:54:22 +0700 Subject: [PATCH] fix: meta and jsonld tags --- public/assets/images/logo-dark.webp | Bin 0 -> 14366 bytes src/app/(main)/page.tsx | 6 +- src/app/(main)/staff_member/[slug]/page.tsx | 91 ++++++++++++++++++-- src/components/Pages/Page.tsx | 82 ++++++++++++++++++ src/middleware.ts | 3 + src/utils/metadata.ts | 5 +- 6 files changed, 176 insertions(+), 11 deletions(-) create mode 100644 public/assets/images/logo-dark.webp diff --git a/public/assets/images/logo-dark.webp b/public/assets/images/logo-dark.webp new file mode 100644 index 0000000000000000000000000000000000000000..9676b0c3b71cc61a772eb6368a3531f8e52454e2 GIT binary patch literal 14366 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 OGQ(EbRsQ?4_WuCJ+h)`N literal 0 HcmV?d00001 diff --git a/src/app/(main)/page.tsx b/src/app/(main)/page.tsx index 06fdf80..1d0d6a8 100644 --- a/src/app/(main)/page.tsx +++ b/src/app/(main)/page.tsx @@ -8,8 +8,6 @@ import { headers } from "next/headers"; export async function generateMetadata(): Promise { const defaultMetadata = await getDefaultMetadata(); defaultMetadata.title = `Homepage - ${defaultMetadata.openGraph?.siteName}`; - defaultMetadata.description = - "Get compassionate care and excellent medical services from COCHISE ONCOLOGY in Sierra Vista, Arizona. We are the largest full-service cancer treatment center between Albuquerque, New Mexico and Tucson, Arizona."; defaultMetadata.keywords = "Cochise Oncology, Oncology, Healthcare, Medical Services, Cancer Treatment"; if (!!defaultMetadata?.openGraph) { @@ -28,6 +26,7 @@ export default async function Home() { const headersList = await headers(); const fullUrl = headersList.get("x-full-url"); const siteName = headersList.get("x-site-name"); + const metaDesc = headersList.get("x-meta-desc"); const jsonLd = { "@context": "https://schema.org", @@ -52,8 +51,7 @@ export default async function Home() { thumbnailUrl: [`${fullUrl}assets/images/cochise-welcome.png`], datePublished: "2024-07-18T16:29:29+00:00", dateModified: "2025-02-24T21:01:50+00:00", - description: - "Get compassionate care and excellent medical services from COCHISE ONCOLOGY in Sierra Vista, Arizona. We are the largest full-service cancer treatment center between Albuquerque, New Mexico and Tucson, Arizona.", + description: metaDesc, breadcrumb: { "@id": `${fullUrl}#breadcrumb`, }, diff --git a/src/app/(main)/staff_member/[slug]/page.tsx b/src/app/(main)/staff_member/[slug]/page.tsx index a5b242a..c836024 100644 --- a/src/app/(main)/staff_member/[slug]/page.tsx +++ b/src/app/(main)/staff_member/[slug]/page.tsx @@ -3,7 +3,9 @@ import HeroOther from "@/components/HeroOther"; import { fetchTeamDetail } from "@/services/payload/team"; import { getDefaultMetadata } from "@/utils/metadata"; import { RichText } from "@payloadcms/richtext-lexical/react"; +import { headers } from "next/headers"; import Image from "next/image"; +import { notFound } from "next/navigation"; import { Metadata } from "next/types"; import { Suspense } from "react"; @@ -45,17 +47,94 @@ export async function generateMetadata({ params }: { params: Promise<{ slug: str export default async function BiographySinglePage({ params }: { params: Promise<{ slug: string }> }) { const slug = (await params).slug; const data = await fetchTeamDetail(decodeURIComponent(slug)); - if (!data?.data) - return ( - <> - - - ); + if (!data?.data) { + notFound(); + } + + const headersList = await headers(); + const mainUrl = headersList.get("x-main-url"); + const fullUrl = headersList.get("x-full-url"); + const siteName = headersList.get("x-site-name"); + const metaDesc = headersList.get("x-meta-desc"); + + const jsonLd = { + "@context": "https://schema.org", + "@graph": [ + { + "@type": "WebPage", + "@id": fullUrl, + url: fullUrl, + name: `${data?.data?.name ?? ""} - ${siteName}`, + isPartOf: { + "@id": `${mainUrl}/#website`, + }, + datePublished: data?.data?.createdAt, + dateModified: data?.data?.updatedAt, + description: metaDesc, + breadcrumb: { + "@id": `${fullUrl}#breadcrumb`, + }, + inLanguage: "en-US", + potentialAction: [ + { + "@type": "ReadAction", + target: [fullUrl], + }, + ], + }, + { + "@type": "WebSite", + "@id": `${mainUrl}/#website`, + url: `${mainUrl}/`, + name: siteName, + description: "", + publisher: { + "@id": `${mainUrl}/#organization`, + }, + potentialAction: [ + { + "@type": "SearchAction", + target: { + "@type": "EntryPoint", + urlTemplate: `${mainUrl}/?s={search_term_string}`, + }, + "query-input": { + "@type": "PropertyValueSpecification", + valueRequired: true, + valueName: "search_term_string", + }, + }, + ], + inLanguage: "en-US", + }, + { + "@type": "Organization", + "@id": `${mainUrl}/#organization`, + name: siteName, + url: `${mainUrl}/`, + logo: { + "@type": "ImageObject", + thumbnailUrl: data.imgUrl, + inLanguage: "en-US", + "@id": `${mainUrl}/#primaryimage`, + url: data.imgUrl, + contentUrl: data.imgUrl, + width: 500, + height: 195, + caption: siteName, + }, + image: { + "@id": `${mainUrl}/#primaryimage`, + }, + }, + ], + }; return ( <> }> <> +