diff --git a/src/components/PageComponents/Map/NodeDetail.tsx b/src/components/PageComponents/Map/NodeDetail.tsx
index e89bcdae..2eac8d14 100644
--- a/src/components/PageComponents/Map/NodeDetail.tsx
+++ b/src/components/PageComponents/Map/NodeDetail.tsx
@@ -1,5 +1,5 @@
import { Separator } from "@app/components/UI/Seperator";
-import { H5 } from "@app/components/UI/Typography/H5.tsx";
+import { Heading } from "@app/components/UI/Typography/Heading";
import { Subtle } from "@app/components/UI/Typography/Subtle.tsx";
import { formatQuantity } from "@app/core/utils/string";
import { Avatar } from "@components/UI/Avatar";
@@ -62,7 +62,7 @@ export const NodeDetail = ({ node }: NodeDetailProps) => {
-
{name}
+ {name}
{hardwareType !== "UNSET" && {hardwareType}}
diff --git a/src/components/PageComponents/Messages/Message.tsx b/src/components/PageComponents/Messages/Message.tsx
index 17b659b2..ce2d4705 100644
--- a/src/components/PageComponents/Messages/Message.tsx
+++ b/src/components/PageComponents/Messages/Message.tsx
@@ -5,7 +5,6 @@ import {
TooltipProvider,
TooltipTrigger,
} from "@app/components/UI/Tooltip";
-import { useAppStore } from "@app/core/stores/appStore";
import {
type MessageWithState,
useDeviceStore,
diff --git a/src/components/PageLayout.tsx b/src/components/PageLayout.tsx
index d15a8dda..4eba1221 100644
--- a/src/components/PageLayout.tsx
+++ b/src/components/PageLayout.tsx
@@ -1,5 +1,7 @@
import { cn } from "@app/core/utils/cn.ts";
import { AlignLeftIcon, type LucideIcon } from "lucide-react";
+import { ErrorBoundary } from "react-error-boundary";
+import { ErrorPage } from "./UI/ErrorPage";
import Footer from "./UI/Footer";
import { Spinner } from "./UI/Spinner";
@@ -23,7 +25,7 @@ export const PageLayout = ({
children,
}: PageLayoutProps) => {
return (
- <>
+
- >
+
);
};
diff --git a/src/components/UI/ErrorPage.tsx b/src/components/UI/ErrorPage.tsx
new file mode 100644
index 00000000..26df17e8
--- /dev/null
+++ b/src/components/UI/ErrorPage.tsx
@@ -0,0 +1,94 @@
+import newGithubIssueUrl from "@app/core/utils/github";
+import { ExternalLink } from "lucide-react";
+import { Heading } from "./Typography/Heading";
+import { Link } from "./Typography/Link";
+import { P } from "./Typography/P";
+
+export function ErrorPage({ error }: { error: Error }) {
+ if (!error) {
+ return null;
+ }
+
+ return (
+
+
+
+
+ This is a little embarrassing...
+
+
+ We are really sorry but an error occurred in the web client that
+ caused it to crash.
+ This is not supposed to happen, and we are working hard to fix it.
+
+
+ The best way to prevent this from happening again to you or anyone
+ else is to report the issue to us.
+
+
Please include the following information in your report:
+
+
What you were doing when the error occurred
+
What you expected to happen
+
What actually happened
+
Any other relevant information
+
+
+ You can report the issue to our{" "}
+ ",
+ logs: error?.stack,
+ })}
+ >
+ Github
+
+
+