diff options
| -rw-r--r-- | src/config/seo.ts | 4 | ||||
| -rw-r--r-- | src/pages/404.tsx | 52 |
2 files changed, 56 insertions, 0 deletions
diff --git a/src/config/seo.ts b/src/config/seo.ts index f2a22a6..89e38c2 100644 --- a/src/config/seo.ts +++ b/src/config/seo.ts @@ -21,4 +21,8 @@ export const seo = { title: t`Legal notice | Armand Philippot`, description: t`Discover the ArmandPhilippot.com website legal notice.`, }, + error404: { + title: t`Error 404: Page not found | Armand Philippot`, + description: '', + }, }; diff --git a/src/pages/404.tsx b/src/pages/404.tsx new file mode 100644 index 0000000..903a386 --- /dev/null +++ b/src/pages/404.tsx @@ -0,0 +1,52 @@ +import Layout from '@components/Layouts/Layout'; +import { seo } from '@config/seo'; +import { t, Trans } from '@lingui/macro'; +import { NextPageWithLayout } from '@ts/types/app'; +import { loadTranslation } from '@utils/helpers/i18n'; +import { GetStaticProps, GetStaticPropsContext } from 'next'; +import Head from 'next/head'; +import Link from 'next/link'; +import { ReactElement } from 'react'; + +const error404: NextPageWithLayout = () => { + return ( + <> + <Head> + <title>{seo.error404.title}</title> + <meta name="description" content={seo.error404.description} /> + </Head> + <div> + <h1>{t`Page not found`}</h1> + <p> + <Trans> + Sorry, it seems that the page you are looking for does not exist. + </Trans>{' '} + <Trans> + If you think this path should work, feel free to{' '} + <Link href="/contact/">contact me</Link> with the necessary + information so that I can fix the problem. + </Trans> + </p> + </div> + </> + ); +}; + +error404.getLayout = (page: ReactElement) => <Layout>{page}</Layout>; + +export const getStaticProps: GetStaticProps = async ( + context: GetStaticPropsContext +) => { + const translation = await loadTranslation( + context.locale!, + process.env.NODE_ENV === 'production' + ); + + return { + props: { + translation, + }, + }; +}; + +export default error404; |
