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 @@ + + + + + \ 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 @@