diff --git a/public/assets/images/logo-dark.webp b/public/assets/images/logo-dark.webp new file mode 100644 index 0000000..9676b0c Binary files /dev/null and b/public/assets/images/logo-dark.webp differ 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 ( <> }> <> +