diff --git a/src/public/app/widgets/right_panel_widget.js b/src/public/app/widgets/right_panel_widget.js index a9831fb5a..767b89c3e 100644 --- a/src/public/app/widgets/right_panel_widget.js +++ b/src/public/app/widgets/right_panel_widget.js @@ -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 = `
@@ -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); + } } /** diff --git a/src/public/translations/en/translation.json b/src/public/translations/en/translation.json index 7983a3c68..adbefd304 100644 --- a/src/public/translations/en/translation.json +++ b/src/public/translations/en/translation.json @@ -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}}" } } }