diff --git a/src/components/site/PostMeta.tsx b/src/components/site/PostMeta.tsx index 9bcb2a60..47d26c42 100644 --- a/src/components/site/PostMeta.tsx +++ b/src/components/site/PostMeta.tsx @@ -4,7 +4,6 @@ import { UniLink } from "~/components/ui/UniLink" import { Note, Profile } from "~/lib/types" import { CSB_SCAN } from "~/lib/env" import { useEffect, useState } from "react" -import { useGetUserSites } from "~/queries/site" import { CharacterFloatCard } from "~/components/common/CharacterFloatCard" import { getSiteLink } from "~/lib/helpers" import { Avatar } from "~/components/ui/Avatar" @@ -12,9 +11,9 @@ import { Avatar } from "~/components/ui/Avatar" export const PostMeta: React.FC<{ page: Note site?: Profile | null -}> = ({ page, site }) => { + author?: Profile | null +}> = ({ page, site, author }) => { const [isMounted, setIsMounted] = useState(false) - const author = useGetUserSites(page.authors[0]) useEffect(() => { setIsMounted(true) @@ -49,29 +48,28 @@ export const PostMeta: React.FC<{ ) : null} - {author.data?.[0].username && - site?.username !== author.data?.[0].username && ( - <> - - - - - {author.data[0].name} - - - - - )} + {author?.username && site?.username !== author?.username && ( + <> + + + + + {author?.name} + + + + + )} new Date()) { reject(notFound()) } + + if (page?.authors[0]) { + await prefetchGetUserSites(page?.authors[0], queryClient) + } } catch (error) { reject(error) } diff --git a/src/components/site/SitePage.tsx b/src/components/site/SitePage.tsx index b204a7a8..1f6d5cc8 100644 --- a/src/components/site/SitePage.tsx +++ b/src/components/site/SitePage.tsx @@ -2,34 +2,71 @@ import { PageContent } from "../common/PageContent" import { PostMeta } from "./PostMeta" import { PostFooter } from "./PostFooter" import { Note, Profile } from "~/lib/types" +import Head from "next/head" +import { useGetUserSites } from "~/queries/site" +import { getSiteLink } from "~/lib/helpers" export const SitePage: React.FC<{ page?: Note | null site?: Profile | null }> = ({ page, site }) => { + const author = useGetUserSites(page?.authors[0]) + + function addPageJsonLd() { + return { + __html: `{ + "@context": "https://schema.org", + "@type": "BlogPosting", + "headline": "${page?.title}", + "image": [ + "${page?.cover}" + ], + "datePublished": "${page?.date_published}", + "dateModified": "${page?.date_updated}", + "author": [{ + "@type": "Person", + "name": "${author?.data?.[0]?.name}", + "url": "${getSiteLink({ + subdomain: author?.data?.[0].username || "", + })}" + }] + }`, + } + } + return ( <> + +