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}}"
}
}
}