diff --git a/addons/web_editor/static/src/js/editor/snippets.options.js b/addons/web_editor/static/src/js/editor/snippets.options.js index eb36cc762ff..deeb85dbceb 100644 --- a/addons/web_editor/static/src/js/editor/snippets.options.js +++ b/addons/web_editor/static/src/js/editor/snippets.options.js @@ -700,11 +700,19 @@ const BaseSelectionUserValueWidget = UserValueWidget.extend({ /** * @override */ - getValue(methodName) { - let activeWidget = this._userValueWidgets.find(widget => widget.isPreviewed()); + getMethodsParams(methodName) { + const params = this._super(...arguments); + const activeWidget = this._getActiveSubWidget(); if (!activeWidget) { - activeWidget = this._userValueWidgets.find(widget => widget.isActive()); + return params; } + return Object.assign(activeWidget.getMethodsParams(...arguments), params); + }, + /** + * @override + */ + getValue(methodName) { + const activeWidget = this._getActiveSubWidget(); if (activeWidget) { return activeWidget.getActiveValue(methodName); } @@ -733,6 +741,22 @@ const BaseSelectionUserValueWidget = UserValueWidget.extend({ } this._super(...arguments); }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * @private + * @returns {UserValueWidget|undefined} + */ + _getActiveSubWidget() { + const previewedWidget = this._userValueWidgets.find(widget => widget.isPreviewed()); + if (previewedWidget) { + return previewedWidget; + } + return this._userValueWidgets.find(widget => widget.isActive()); + }, }); const SelectUserValueWidget = BaseSelectionUserValueWidget.extend({