snort/packages/app/src/Pages/ErrorPage.tsx

37 lines
955 B
TypeScript
Raw Normal View History

2023-05-17 10:37:48 +00:00
import { db } from "Db";
import AsyncButton from "Element/AsyncButton";
2023-09-27 09:09:26 +00:00
import FormattedMessage from "Element/FormattedMessage";
2023-01-12 12:00:44 +00:00
import { useRouteError } from "react-router-dom";
2023-01-12 15:35:42 +00:00
const ErrorPage = () => {
const error = useRouteError();
2023-01-12 12:00:44 +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-01-12 12:00:44 +00:00
};
export default ErrorPage;