diff options
| author | Armand Philippot <git@armandphilippot.com> | 2021-12-24 15:35:33 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2021-12-24 15:37:26 +0100 |
| commit | 0bb6411ee9fce02c2e5680f2be5740a1bbb508ad (patch) | |
| tree | 59b574dbda693dc5f1b2605272a6eff3b23802f2 | |
| parent | 3956ed77e11455a963ce17a64783d70fa666a7a0 (diff) | |
chore: replace CV content with mdx content
Since I replace the other pages, there is no reason to fetch this page
content through WP GraphQL.
| -rw-r--r-- | mdx.d.ts | 1 | ||||
| m--------- | src/content | 0 | ||||
| -rw-r--r-- | src/pages/cv.tsx | 21 | ||||
| -rw-r--r-- | src/services/graphql/queries.ts | 28 | ||||
| -rw-r--r-- | src/ts/types/app.ts | 8 | ||||
| -rw-r--r-- | src/ts/types/pages.ts | 23 | ||||
| -rw-r--r-- | src/utils/helpers/format.ts | 23 |
7 files changed, 8 insertions, 96 deletions
@@ -4,4 +4,5 @@ declare module '*.mdx' { let MDXComponent: (props: any) => JSX.Element; export default MDXComponent; export const meta: Meta; + export const intro: string; } diff --git a/src/content b/src/content -Subproject cc486766242f106dbefabb70c6a78b2470490d0 +Subproject d6f4c2ff1510272a42da208dde9340dbb185753 diff --git a/src/pages/cv.tsx b/src/pages/cv.tsx index 44d943c..5107f6a 100644 --- a/src/pages/cv.tsx +++ b/src/pages/cv.tsx @@ -1,14 +1,13 @@ import { getLayout } from '@components/Layouts/Layout'; import ToC from '@components/ToC/ToC'; import { seo } from '@config/seo'; -import { getPageByUri } from '@services/graphql/queries'; import { NextPageWithLayout } from '@ts/types/app'; -import { PageProps } from '@ts/types/pages'; import { loadTranslation } from '@utils/helpers/i18n'; import { GetStaticProps, GetStaticPropsContext } from 'next'; import Head from 'next/head'; +import CVContent, { intro, meta } from '@content/pages/cv.mdx'; -const CV: NextPageWithLayout<PageProps> = ({ page }) => { +const CV: NextPageWithLayout = () => { return ( <> <Head> @@ -17,17 +16,11 @@ const CV: NextPageWithLayout<PageProps> = ({ page }) => { </Head> <article> <header> - <h1>{page.title}</h1> - {page.content && ( - <div dangerouslySetInnerHTML={{ __html: page.intro }}></div> - )} + <h1>{meta.title}</h1> + <div dangerouslySetInnerHTML={{ __html: intro }}></div> </header> <ToC /> - <div - dangerouslySetInnerHTML={{ - __html: page.content ? page.content : page.intro, - }} - ></div> + <CVContent /> </article> </> ); @@ -42,13 +35,11 @@ export const getStaticProps: GetStaticProps = async ( context.locale!, process.env.NODE_ENV === 'production' ); - const page = await getPageByUri('/cv/'); - const breadcrumbTitle = page.title; + const breadcrumbTitle = meta.title; return { props: { breadcrumbTitle, - page, translation, }, }; diff --git a/src/services/graphql/queries.ts b/src/services/graphql/queries.ts index 518cf75..a40446e 100644 --- a/src/services/graphql/queries.ts +++ b/src/services/graphql/queries.ts @@ -1,7 +1,6 @@ import { Slug } from '@ts/types/app'; import { Article, PostBy } from '@ts/types/articles'; import { AllPostsSlug, PostsList, RawPostsList } from '@ts/types/blog'; -import { Page, PageBy } from '@ts/types/pages'; import { AllSubjectsSlug, AllThematicsSlug, @@ -11,7 +10,6 @@ import { ThematicBy, } from '@ts/types/taxonomies'; import { - getFormattedPage, getFormattedPost, getFormattedPostPreview, getFormattedSubject, @@ -234,32 +232,6 @@ export const getPostBySlug = async (slug: string): Promise<Article> => { }; //============================================================================== -// Pages query -//============================================================================== - -export const getPageByUri = async (slug: string): Promise<Page> => { - const query = gql` - query PageByUri($slug: String!) { - pageBy(uri: $slug) { - contentParts { - afterMore - beforeMore - } - date - modified - title - } - } - `; - - const variables = { slug }; - const response = await fetchApi<PageBy>(query, variables); - const page = getFormattedPage(response.pageBy); - - return page; -}; - -//============================================================================== // Subject query //============================================================================== diff --git a/src/ts/types/app.ts b/src/ts/types/app.ts index ebd604c..2a1c9fc 100644 --- a/src/ts/types/app.ts +++ b/src/ts/types/app.ts @@ -5,7 +5,6 @@ import { PostBy } from './articles'; import { AllPostsSlug, RawPostsList } from './blog'; import { CommentData, CreateComment } from './comments'; import { ContactData, SendEmail } from './contact'; -import { PageBy } from './pages'; import { AllSubjectsSlug, AllThematicsSlug, @@ -29,11 +28,7 @@ export type AppPropsWithLayout = AppProps & { // API //============================================================================== -export type VariablesType<T> = T extends - | PageBy - | PostBy - | SubjectBy - | ThematicBy +export type VariablesType<T> = T extends PostBy | SubjectBy | ThematicBy ? Slug : T extends RawPostsList ? CursorPagination @@ -48,7 +43,6 @@ export type RequestType = | AllSubjectsSlug | AllThematicsSlug | CreateComment - | PageBy | PostBy | SubjectBy | ThematicBy diff --git a/src/ts/types/pages.ts b/src/ts/types/pages.ts deleted file mode 100644 index 93ff62e..0000000 --- a/src/ts/types/pages.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ContentParts, Dates } from './app'; - -export type Page = { - content: string; - dates: Dates; - intro: string; - title: string; -}; - -export type RawPage = { - contentParts: ContentParts; - date: string; - modified: string; - title: string; -}; - -export type PageBy = { - pageBy: RawPage; -}; - -export type PageProps = { - page: Page; -}; diff --git a/src/utils/helpers/format.ts b/src/utils/helpers/format.ts index 8c5e545..fc7f1c2 100644 --- a/src/utils/helpers/format.ts +++ b/src/utils/helpers/format.ts @@ -5,7 +5,6 @@ import { RawArticlePreview, } from '@ts/types/articles'; import { Comment, RawComment } from '@ts/types/comments'; -import { Page, RawPage } from '@ts/types/pages'; import { RawSubject, RawThematic, @@ -202,25 +201,3 @@ export const getFormattedPost = (rawPost: RawArticle): Article => { return formattedPost; }; - -/** - * Format a page from RawPage to Page type. - * @param page - A page coming from WP GraphQL. - * @returns A formatted page. - */ -export const getFormattedPage = (rawPage: RawPage): Page => { - const { date, modified } = rawPage; - const dates = { - publication: date, - update: modified, - }; - - const formattedPage: Page = { - ...rawPage, - content: rawPage.contentParts.afterMore, - dates, - intro: rawPage.contentParts.beforeMore, - }; - - return formattedPage; -}; |
