aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages/projets/index.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/projets/index.tsx')
-rw-r--r--src/pages/projets/index.tsx37
1 files changed, 23 insertions, 14 deletions
diff --git a/src/pages/projets/index.tsx b/src/pages/projets/index.tsx
index a145401..97963dd 100644
--- a/src/pages/projets/index.tsx
+++ b/src/pages/projets/index.tsx
@@ -1,5 +1,5 @@
-import { MDXComponents } from 'mdx/types';
-import { GetStaticProps } from 'next';
+import type { MDXComponents } from 'mdx/types';
+import type { GetStaticProps } from 'next';
import Head from 'next/head';
import { useRouter } from 'next/router';
import Script from 'next/script';
@@ -12,12 +12,13 @@ import {
} from '../../components';
import PageContent, { meta } from '../../content/pages/projects.mdx';
import styles from '../../styles/pages/projects.module.scss';
-import { type NextPageWithLayout, type ProjectCard } from '../../types';
+import type { NextPageWithLayout, ProjectCard } from '../../types';
+import { ROUTES } from '../../utils/constants';
import {
getSchemaJson,
getSinglePageSchema,
getWebPageSchema,
-} from '../../utils/helpers/';
+} from '../../utils/helpers';
import {
getProjectsCard,
loadTranslation,
@@ -25,6 +26,10 @@ import {
} from '../../utils/helpers/server';
import { useBreadcrumb, useSettings } from '../../utils/hooks';
+const components: MDXComponents = {
+ Link,
+};
+
type ProjectsPageProps = {
projects: ProjectCard[];
translation?: Messages;
@@ -37,7 +42,7 @@ const ProjectsPage: NextPageWithLayout<ProjectsPageProps> = ({ projects }) => {
const { dates, seo, title } = meta;
const { items: breadcrumbItems, schema: breadcrumbSchema } = useBreadcrumb({
title,
- url: `/projets`,
+ url: ROUTES.PROJECTS,
});
const items: CardsListItem[] = projects.map(
@@ -47,18 +52,14 @@ const ProjectsPage: NextPageWithLayout<ProjectsPageProps> = ({ projects }) => {
return {
cover,
id: id as string,
- meta: { technologies: technologies },
+ meta: { technologies },
tagline,
title: projectTitle,
- url: `/projets/${slug}`,
+ url: `${ROUTES.PROJECTS}/${slug}`,
};
}
);
- const components: MDXComponents = {
- Link,
- };
-
const { website } = useSettings();
const { asPath } = useRouter();
const webpageSchema = getWebPageSchema({
@@ -78,20 +79,28 @@ const ProjectsPage: NextPageWithLayout<ProjectsPageProps> = ({ projects }) => {
title,
});
const schemaJsonLd = getSchemaJson([webpageSchema, articleSchema]);
+ const page = {
+ title: `${seo.title} - ${website.name}`,
+ url: `${website.url}${asPath}`,
+ };
return (
<>
<Head>
- <title>{`${seo.title} - ${website.name}`}</title>
+ <title>{page.title}</title>
+ {/*eslint-disable-next-line react/jsx-no-literals -- Name allowed */}
<meta name="description" content={seo.description} />
- <meta property="og:url" content={`${website.url}${asPath}`} />
+ <meta property="og:url" content={page.url} />
+ {/*eslint-disable-next-line react/jsx-no-literals -- Content allowed */}
<meta property="og:type" content="article" />
- <meta property="og:title" content={`${seo.title} - ${website.name}`} />
+ <meta property="og:title" content={page.title} />
<meta property="og:description" content={seo.description} />
</Head>
<Script
+ // eslint-disable-next-line react/jsx-no-literals -- Id allowed
id="schema-projects"
type="application/ld+json"
+ // eslint-disable-next-line react/no-danger -- Necessary for schema
dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaJsonLd) }}
/>
<PageLayout