From 3760b757f8fd35eafc340a43f7980ab954413f4e Mon Sep 17 00:00:00 2001
From: Armand Philippot <git@armandphilippot.com>
Date: Wed, 15 Dec 2021 19:11:59 +0100
Subject: chore: create CV view

---
 src/pages/cv.tsx | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 src/pages/cv.tsx

(limited to 'src/pages/cv.tsx')

diff --git a/src/pages/cv.tsx b/src/pages/cv.tsx
new file mode 100644
index 0000000..5b913f3
--- /dev/null
+++ b/src/pages/cv.tsx
@@ -0,0 +1,48 @@
+import Layout from '@components/Layouts/Layout';
+import { seo } from '@config/seo';
+import { getCVPage } from '@services/graphql/pages';
+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 { ReactElement } from 'react';
+
+const CV: NextPageWithLayout<PageProps> = ({ page }) => {
+  return (
+    <>
+      <Head>
+        <title>{seo.cv.title}</title>
+        <meta name="description" content={seo.cv.description} />
+      </Head>
+      <article>
+        <header>
+          <h1>{page.title}</h1>
+          <div dangerouslySetInnerHTML={{ __html: page.intro }}></div>
+        </header>
+        <div dangerouslySetInnerHTML={{ __html: page.content }}></div>
+      </article>
+    </>
+  );
+};
+
+CV.getLayout = (page: ReactElement) => <Layout>{page}</Layout>;
+
+export const getStaticProps: GetStaticProps = async (
+  context: GetStaticPropsContext
+) => {
+  const translation = await loadTranslation(
+    context.locale!,
+    process.env.NODE_ENV === 'production'
+  );
+  const page = await getCVPage();
+
+  return {
+    props: {
+      page,
+      translation,
+    },
+  };
+};
+
+export default CV;
-- 
cgit v1.2.3

