diff --git a/components/errors/ErrorBoundary.vue b/components/errors/ErrorBoundary.vue
new file mode 100644
index 0000000..8e1bdfb
--- /dev/null
+++ b/components/errors/ErrorBoundary.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
404
+
{{ error.title }}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/composables/EventBus.ts b/composables/EventBus.ts
index 4c90ae9..3e245c8 100644
--- a/composables/EventBus.ts
+++ b/composables/EventBus.ts
@@ -31,6 +31,11 @@ type ApplicationEvents = {
"notification:new": NotificationEvent;
"attachment:view": Attachment;
"identity:change": Identity;
+ error: {
+ code: string;
+ title: string;
+ message: string;
+ } | null;
};
const emitter = mitt();
diff --git a/layouts/app.vue b/layouts/app.vue
index 64dc8f4..bcfa587 100644
--- a/layouts/app.vue
+++ b/layouts/app.vue
@@ -14,6 +14,7 @@
+
@@ -64,12 +65,12 @@ const client = useClient();
const providers = useSSOConfig();
watchEffect(async () => {
- if (n.value) {
+ if (n?.value) {
// Wait 50ms
await new Promise((resolve) => setTimeout(resolve, 50));
useEvent("composer:open");
}
- if (o_i_d_c.value) {
+ if (o_i_d_c?.value) {
useEvent("notification:new", {
type: "progress",
title: "Linking your account",
diff --git a/pages/[username]/index.vue b/pages/[username]/index.vue
index b162122..ec97e52 100644
--- a/pages/[username]/index.vue
+++ b/pages/[username]/index.vue
@@ -1,10 +1,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+