Files
pedwfrontend/pages/auth/error.js
T
2024-02-19 16:54:56 +00:00

86 lines
3.3 KiB
JavaScript

import useTranslation from "next-translate/useTranslation";
import Head from "next/head";
import Link from "next/link";
import CookieBanner from "../../components/cookieBanner";
import Footer from "../../components/footer";
import Header from "../../components/header";
import Breadcrumbs from "../../components/breadcrumbs";
import { useRouter } from "next/router";
import { getCsrfToken } from "next-auth/react";
const Error = (props) => {
let { t, lang } = useTranslation();
const { footerLinks, pages, csrfToken } = props;
const { error } = useRouter().query;
const errors = {
Signin: t("auth:auth-error-Signin-label"),
OAuthSignin: t("auth:auth-error-OAuthSignin-label"),
OAuthCallback: t("auth:auth-error-OAuthCallback-label"),
OAuthCreateAccount: t("auth:auth-error-OAuthCreateAccount-label"),
EmailCreateAccount: t("auth:auth-error-EmailCreateAccount-label"),
Callback: t("auth:auth-error-Callback-label"),
OAuthAccountNotLinked: t("auth:auth-error-OAuthAccountNotLinked-label"),
EmailSignin: t("auth:auth-error-EmailSignin-label"),
CredentialsSignin: t("auth:auth-error-CredentialsSignin-label"),
Verification: t("auth:auth-error-Verification-label"),
default: t("auth:auth-error-default-label"),
};
const errorMessage = error && (errors[error] ?? errors.default);
return (
<div>
<Head>
<title>
{t("auth:auth-error-signin-error-title")} -{" "}
{t("common:service-name")}
</title>
</Head>
<div id="page_wrapper">
<CookieBanner />
<Header courseName={t("common:service-name")} />
<div className="govuk-width-container govuk-!-padding-bottom-9">
<Breadcrumbs />
<main
className="govuk-main-wrapper govuk-!-padding-top-0 govuk-!-padding-bottom-9"
id="main-content"
role="main"
>
<div className="govuk-grid-row ">
<div className="govuk-grid-column-two-thirds ">
<h1>{t("auth:auth-error-heading")}</h1>
</div>
</div>
<div className="govuk-grid-row">
<div className="govuk-grid-column-two-thirds govuk-body">
{errorMessage}
</div>
</div>
<div className="govuk-grid-row">
<div className="govuk-grid-column-two-thirds govuk-body">
<Link href="/" legacyBehavior>
{t("auth:auth-return-home-link-label")}
</Link>
</div>
</div>
</main>
</div>
<Footer footerLinks={footerLinks} />
</div>
</div>
);
};
export async function getServerSideProps(context) {
const csrfToken = await getCsrfToken(context);
return {
props: { csrfToken },
};
}
export default Error;