78 lines
3.4 KiB
JavaScript
78 lines
3.4 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 { parseCookies, setCookie, destroyCookie } from "nookies";
|
|
import { useSession, signIn, signOut } from "next-auth/react";
|
|
|
|
function Error({ statusCode }, props) {
|
|
let { t, lang } = useTranslation();
|
|
const { footerLinks, pages } = props;
|
|
|
|
return (
|
|
<div>
|
|
<Head>
|
|
<title>
|
|
{t("case:page-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">
|
|
<main className="govuk-main-wrapper govuk-!-padding-top-9 govuk-!-padding-bottom-9">
|
|
<div className="govuk-grid-row">
|
|
<div className="govuk-grid-column-two-thirds ">
|
|
<h1>{t("common:error-page-title")}</h1>
|
|
<p className="govuk-body">
|
|
{statusCode
|
|
? `An error ${statusCode} occurred on server`
|
|
: t("common:error-page-message")}
|
|
</p>
|
|
<p className="govuk-body">
|
|
{t("common:error-instruction-label")}
|
|
</p>
|
|
<a
|
|
href={session != null ? "#" : "/"}
|
|
className="govuk-link"
|
|
onClick={() => {
|
|
window.localStorage.clear(),
|
|
destroyCookie(
|
|
null,
|
|
"next-auth.csrf-token"
|
|
),
|
|
destroyCookie(
|
|
null,
|
|
"next-auth.callback-url"
|
|
),
|
|
destroyCookie(null, "pedw_locale"),
|
|
destroyCookie(null, "pinsUser"),
|
|
session != null
|
|
? signOut({
|
|
callbackUrl: "/",
|
|
})
|
|
: Router.push("/");
|
|
}}
|
|
>
|
|
Go back home
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
<Footer footerLinks={footerLinks} ticketnumber={props} />
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
Error.getInitialProps = ({ res, err }) => {
|
|
const statusCode = res ? res.statusCode : err ? err.statusCode : 404;
|
|
console.log(res, err);
|
|
return { statusCode };
|
|
};
|
|
|
|
export default Error;
|