DEV: allows to call a widget function without re-rendering the widget (#10004)

DEV: allows to call a widget function without re-rendering the widget (#10004)

diff --git a/app/assets/javascripts/discourse/app/widgets/widget.js b/app/assets/javascripts/discourse/app/widgets/widget.js
index 9922097..378035a 100644
--- a/app/assets/javascripts/discourse/app/widgets/widget.js
+++ b/app/assets/javascripts/discourse/app/widgets/widget.js
@@ -327,14 +327,21 @@ export default class Widget {
     });
   }
 
+  callWidgetFunction(name, param) {
+    const widget = this._findAncestorWithProperty(name);
+    if (widget) {
+      return widget[name].call(widget, param);
+    }
+  }
+
   sendWidgetAction(name, param) {
     return this.rerenderResult(() => {
-      const widget = this._findAncestorWithProperty(name);
-      if (widget) {
-        return widget[name].call(widget, param);
-      }
+      const widgetFunction = this.callWidgetFunction(name, param);
 
-      return this._sendComponentAction(name, param || this.findAncestorModel());
+      return (
+        widgetFunction ||
+        this._sendComponentAction(name, param || this.findAncestorModel())
+      );
     });
   }
 

GitHub sha: 43e17f92

This commit appears in #10004 which was approved by ZogStriP. It was merged by jjaffeux.