2023-11-17 11:52:10 +00:00
|
|
|
import { db } from "@/Db";
|
|
|
|
import AsyncButton from "@/Element/AsyncButton";
|
2023-10-17 13:02:59 +00:00
|
|
|
import { FormattedMessage } from "react-intl";
|
2023-01-12 12:00:44 +00:00
|
|
|
import { useRouteError } from "react-router-dom";
|
|
|
|
|
2023-01-12 15:35:42 +00:00
|
|
|
const ErrorPage = () => {
|
2023-02-07 20:04:50 +00:00
|
|
|
const error = useRouteError();
|
2023-01-12 12:00:44 +00:00
|
|
|
|
2023-02-07 20:04:50 +00:00
|
|
|
console.error(error);
|
|
|
|
return (
|
2023-05-17 10:37:48 +00:00
|
|
|
<div className="main-content page">
|
2023-02-11 18:26:51 +00:00
|
|
|
<h4>
|
|
|
|
<FormattedMessage defaultMessage="An error has occured!" />
|
|
|
|
</h4>
|
2023-05-17 10:37:48 +00:00
|
|
|
<AsyncButton
|
|
|
|
onClick={async () => {
|
|
|
|
await db.delete();
|
|
|
|
globalThis.localStorage.clear();
|
|
|
|
globalThis.location.href = "/";
|
|
|
|
}}>
|
|
|
|
<FormattedMessage defaultMessage="Clear cache and reload" />
|
|
|
|
</AsyncButton>
|
|
|
|
{
|
|
|
|
<pre>
|
|
|
|
{JSON.stringify(
|
|
|
|
error instanceof Error ? { name: error.name, message: error.message, stack: error.stack } : error,
|
|
|
|
undefined,
|
2023-09-12 21:58:37 +00:00
|
|
|
" ",
|
2023-05-17 10:37:48 +00:00
|
|
|
)}
|
|
|
|
</pre>
|
|
|
|
}
|
|
|
|
</div>
|
2023-02-07 20:04:50 +00:00
|
|
|
);
|
2023-01-12 12:00:44 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
export default ErrorPage;
|