summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2021-12-24 15:35:33 +0100
committerArmand Philippot <git@armandphilippot.com>2021-12-24 15:37:26 +0100
commit0bb6411ee9fce02c2e5680f2be5740a1bbb508ad (patch)
tree59b574dbda693dc5f1b2605272a6eff3b23802f2
parent3956ed77e11455a963ce17a64783d70fa666a7a0 (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.ts1
m---------src/content0
-rw-r--r--src/pages/cv.tsx21
-rw-r--r--src/services/graphql/queries.ts28
-rw-r--r--src/ts/types/app.ts8
-rw-r--r--src/ts/types/pages.ts23
-rw-r--r--src/utils/helpers/format.ts23
7 files changed, 8 insertions, 96 deletions
diff --git a/mdx.d.ts b/mdx.d.ts
index b77b39d..fb9f909 100644
--- a/mdx.d.ts
+++ b/mdx.d.ts
@@ -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;
-};