64 lines
2.5 KiB
JavaScript
64 lines
2.5 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>
|
|
|
|
<a
|
|
onClick={() => {
|
|
destroyCookie({}, "pinsUser"),
|
|
window.localStorage.clear(),
|
|
signOut({
|
|
callbackUrl: "/",
|
|
});
|
|
}}
|
|
>
|
|
{" "}
|
|
Go back home
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
<Footer footerLinks={footerLinks} />
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
Error.getInitialProps = ({ res, err }) => {
|
|
const statusCode = res ? res.statusCode : err ? err.statusCode : 404;
|
|
console.log(res, err);
|
|
return { statusCode };
|
|
};
|
|
|
|
export default Error;
|