From 9331a273975e576faf1f7965d22d6d045114f7b9 Mon Sep 17 00:00:00 2001 From: William Grant Date: Thu, 20 Apr 2023 15:41:13 +1000 Subject: [PATCH] feat: splitpages now have better rich content support --- components/BlogPost.tsx | 2 +- pages/[page].tsx | 5 +++-- pages/preview/[...slug].tsx | 5 +++-- services/cms.tsx | 4 ++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/components/BlogPost.tsx b/components/BlogPost.tsx index 9cfe488..46c6267 100644 --- a/components/BlogPost.tsx +++ b/components/BlogPost.tsx @@ -21,7 +21,7 @@ export default function BlogPost(props: Props) { dispatch(setPageType(PageType.POST)); dispatch(setPostTitle(post.title)); } - }, []); + }, [dispatch, post]); return ( <> diff --git a/pages/[page].tsx b/pages/[page].tsx index fe19e97..2b13fd2 100644 --- a/pages/[page].tsx +++ b/pages/[page].tsx @@ -58,10 +58,11 @@ export async function getStaticProps({ params }) { page = await cms.fetchPageById(SideMenuItem[id]); } else { page = await cms.fetchEntryBySlug(url, 'post'); - // embedded links in post body need metadata for preview - page.body = await generateLinkMeta(page.body); } + // embedded links in post body need metadata for preview + page.body = await generateLinkMeta(page.body); + return { props: { page, diff --git a/pages/preview/[...slug].tsx b/pages/preview/[...slug].tsx index 35b44ac..77f167a 100644 --- a/pages/preview/[...slug].tsx +++ b/pages/preview/[...slug].tsx @@ -48,10 +48,11 @@ export const getServerSideProps: GetServerSideProps = async ( let query = slug; if (slug.indexOf('blog/') >= 0) query = slug.split('blog/')[1]; page = await cms.fetchEntryPreview(query, 'post'); - // embedded links in post body need metadata for preview - page.body = await generateLinkMeta(page.body); } + // embedded links in post body need metadata for preview + page.body = await generateLinkMeta(page.body); + console.log(`Built Preview %c${slug}`, 'color: purple;'); return { props: { diff --git a/services/cms.tsx b/services/cms.tsx index 273d58c..1cb87ec 100644 --- a/services/cms.tsx +++ b/services/cms.tsx @@ -2,8 +2,8 @@ import { Block, Document, Inline } from '@contentful/rich-text-types'; import { ContentfulClientApi, EntryCollection, - createClient, Tag, + createClient, } from 'contentful'; import { IAuthor, @@ -335,7 +335,7 @@ export class CmsApi { }; }; - public convertPage = (rawData): ISplitPage => { + public convertPage = (rawData: any): ISplitPage => { const rawPage = rawData.fields; const rawHero = rawPage?.hero ? rawPage?.hero?.fields : null;