From 606461f857e06b06429dd5738be642f9d1b459be Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Tue, 11 Jan 2022 16:20:59 +0100 Subject: chore: add title and meta desc to subjects and thematics --- src/pages/sujet/[slug].tsx | 57 ++++++++++++++++++++++++----------------- src/pages/thematique/[slug].tsx | 47 +++++++++++++++++++-------------- src/ts/types/taxonomies.ts | 4 ++- src/utils/helpers/format.ts | 15 +++++++++-- 4 files changed, 77 insertions(+), 46 deletions(-) (limited to 'src') diff --git a/src/pages/sujet/[slug].tsx b/src/pages/sujet/[slug].tsx index 167bfc0..a7adf89 100644 --- a/src/pages/sujet/[slug].tsx +++ b/src/pages/sujet/[slug].tsx @@ -16,6 +16,7 @@ import { ArticleMeta } from '@ts/types/articles'; import ToC from '@components/ToC/ToC'; import { RelatedThematics, TopicsList } from '@components/Widget'; import { useRef } from 'react'; +import Head from 'next/head'; const Subject: NextPageWithLayout = ({ subject }) => { const relatedThematics = useRef([]); @@ -49,30 +50,38 @@ const Subject: NextPageWithLayout = ({ subject }) => { }; return ( -
- - -
-
- {subject.posts.length > 0 && ( -
-

{t`All posts in ${subject.title}`}

-
    {getPostsList()}
-
- )} -
- -
+ <> + + {subject.seo.title} + + +
+ + +
+
+ {subject.posts.length > 0 && ( +
+

{t`All posts in ${subject.title}`}

+
    {getPostsList()}
+
+ )} +
+ +
+ ); }; diff --git a/src/pages/thematique/[slug].tsx b/src/pages/thematique/[slug].tsx index 4921806..f23ad5b 100644 --- a/src/pages/thematique/[slug].tsx +++ b/src/pages/thematique/[slug].tsx @@ -16,6 +16,7 @@ import ToC from '@components/ToC/ToC'; import { RelatedTopics, ThematicsList } from '@components/Widget'; import { useRef } from 'react'; import { ArticleMeta } from '@ts/types/articles'; +import Head from 'next/head'; const Thematic: NextPageWithLayout = ({ thematic }) => { const relatedSubjects = useRef([]); @@ -48,25 +49,33 @@ const Thematic: NextPageWithLayout = ({ thematic }) => { }; return ( -
- - -
-
- {thematic.posts.length > 0 && ( -
-

{t`All posts in ${thematic.title}`}

-
    {getPostsList()}
-
- )} -
- -
+ <> + + {thematic.seo.title} + + +
+ + +
+
+ {thematic.posts.length > 0 && ( +
+

{t`All posts in ${thematic.title}`}

+
    {getPostsList()}
+
+ )} +
+ +
+ ); }; diff --git a/src/ts/types/taxonomies.ts b/src/ts/types/taxonomies.ts index 0b2d696..a0aaa5e 100644 --- a/src/ts/types/taxonomies.ts +++ b/src/ts/types/taxonomies.ts @@ -1,6 +1,7 @@ import { ContentParts, Dates, Slug } from './app'; import { ArticlePreview, RawArticlePreview } from './articles'; import { Cover, RawCover } from './cover'; +import { SEO } from './seo'; //============================================================================== // Taxonomies base @@ -13,10 +14,11 @@ type Taxonomy = { id: string; intro: string; posts: ArticlePreview[]; + seo: SEO; title: string; }; -type TaxonomyPreview = Pick & { +type TaxonomyPreview = Pick & { slug: string; }; diff --git a/src/utils/helpers/format.ts b/src/utils/helpers/format.ts index e628369..b79daef 100644 --- a/src/utils/helpers/format.ts +++ b/src/utils/helpers/format.ts @@ -84,6 +84,7 @@ export const getFormattedSubject = (rawSubject: RawSubject): Subject => { featuredImage, id, modified, + seo, title, } = rawSubject; @@ -103,6 +104,7 @@ export const getFormattedSubject = (rawSubject: RawSubject): Subject => { intro: contentParts.beforeMore, officialWebsite: acfSubjects.officialWebsite, posts, + seo, title, }; @@ -115,8 +117,16 @@ export const getFormattedSubject = (rawSubject: RawSubject): Subject => { * @returns A formatted thematic. */ export const getFormattedThematic = (rawThematic: RawThematic): Thematic => { - const { acfThematics, contentParts, databaseId, date, id, modified, title } = - rawThematic; + const { + acfThematics, + contentParts, + databaseId, + date, + id, + modified, + seo, + title, + } = rawThematic; const dates = { publication: date, @@ -132,6 +142,7 @@ export const getFormattedThematic = (rawThematic: RawThematic): Thematic => { id, intro: contentParts.beforeMore, posts, + seo, title, }; -- cgit v1.2.3