import type { ReactElement } from 'react';
import { GetStaticProps } from 'next';
import Head from 'next/head';
import Layout from '@components/Layouts/Layout';
import { seo } from '@config/seo';
import { NextPageWithLayout } from '@ts/types/app';
import { loadTranslation } from '@utils/helpers/i18n';
import HomePageContent from '@content/pages/homepage.mdx';
import { ButtonLink } from '@components/Buttons';
import styles from '@styles/pages/Home.module.scss';
import { t } from '@lingui/macro';
import FeedIcon from '@assets/images/icon-feed.svg';
import { ContactIcon } from '@components/Icons';
import { Graph, WebPage } from 'schema-dts';
import { config } from '@config/website';
const Home: NextPageWithLayout = () => {
const CodingLinks = () => {
return (
-
{t`Web development`}
-
{t`Projects`}
);
};
const ColdarkRepos = () => {
return (
);
};
const LibreLinks = () => {
return (
);
};
const MoreLinks = () => {
return (
-
{t`Contact me`}
-
{t`Subscribe`}
);
};
const components = {
CodingLinks: CodingLinks,
ColdarkRepos: ColdarkRepos,
LibreLinks: LibreLinks,
MoreLinks: MoreLinks,
};
const webpageSchema: WebPage = {
'@id': `${config.url}/#home`,
'@type': 'WebPage',
breadcrumb: { '@id': `${config.url}/#breadcrumb` },
name: seo.legalNotice.title,
description: seo.legalNotice.description,
author: { '@id': `${config.url}/#branding` },
creator: { '@id': `${config.url}/#branding` },
editor: { '@id': `${config.url}/#branding` },
inLanguage: config.defaultLocale,
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
reviewedBy: { '@id': `${config.url}/#branding` },
url: `${config.url}`,
};
const schemaJsonLd: Graph = {
'@context': 'https://schema.org',
'@graph': [webpageSchema],
};
return (
<>
{seo.homepage.title}
>
);
};
Home.getLayout = function getLayout(page: ReactElement) {
return {page};
};
export const getStaticProps: GetStaticProps = async (ctx) => {
const translation = await loadTranslation(
ctx.locale!,
process.env.NODE_ENV === 'production'
);
return {
props: {
translation,
},
};
};
export default Home;