client: Display errors for right panel widgets instead of crashing

This commit is contained in:
Elian Doran 2024-07-27 12:23:51 +03:00
parent 584ba246e3
commit 0ba9fc7f5b
No known key found for this signature in database
2 changed files with 19 additions and 1 deletions

View File

@ -1,4 +1,6 @@
import NoteContextAwareWidget from "./note_context_aware_widget.js";
import toastService from "../services/toast.js";
import { t } from "../services/i18n.js";
const WIDGET_TPL = `
<div class="card widget">
@ -54,7 +56,19 @@ class RightPanelWidget extends NoteContextAwareWidget {
this.$buttons.append(buttonWidget.render());
}
this.initialized = this.doRenderBody();
try {
this.initialized = this.doRenderBody();
} catch (e) {
toastService.showPersistent({
title: t("toast.widget-error.title"),
icon: "alert",
message: t("toast.widget-error.message", {
title: this.widgetTitle,
message: e.message
})
});
logError(e);
}
}
/**

View File

@ -13,6 +13,10 @@
"critical-error": {
"title": "Critical error",
"message": "A critical error has occurred which prevents the client application from starting:\n\n{{message}}\n\nThis is most likely caused by a script failing in an unexpected way. Try starting the application in safe mode and addressing the issue."
},
"widget-error": {
"title": "Failed to initialize a widget",
"message": "Widget with title \"{{title}}\" could not be initialized due to:\n\n{{message}}"
}
}
}