diff --git a/addons/website/static/src/js/editor/snippets.options.js b/addons/website/static/src/js/editor/snippets.options.js
index b869e44337b..cb7bba8c7fd 100644
--- a/addons/website/static/src/js/editor/snippets.options.js
+++ b/addons/website/static/src/js/editor/snippets.options.js
@@ -2587,6 +2587,21 @@ options.registry.ScrollButton = options.Class.extend({
},
});
+options.registry.MobileVisibility = options.Class.extend({
+
+ //--------------------------------------------------------------------------
+ // Private
+ //--------------------------------------------------------------------------
+
+ /**
+ * @override
+ */
+ async _computeVisibility() {
+ // Same as default but overridden by other apps
+ return true;
+ },
+});
+
return {
UrlPickerUserValueWidget: UrlPickerUserValueWidget,
FontFamilyPickerUserValueWidget: FontFamilyPickerUserValueWidget,
diff --git a/addons/website/views/snippets/snippets.xml b/addons/website/views/snippets/snippets.xml
index ae20120d2ef..42018a882f2 100644
--- a/addons/website/views/snippets/snippets.xml
+++ b/addons/website/views/snippets/snippets.xml
@@ -481,7 +481,7 @@
-
diff --git a/addons/website_form/static/src/snippets/s_website_form/options.js b/addons/website_form/static/src/snippets/s_website_form/options.js
index 50c01b1018b..7f841aa0465 100644
--- a/addons/website_form/static/src/snippets/s_website_form/options.js
+++ b/addons/website_form/static/src/snippets/s_website_form/options.js
@@ -4,6 +4,7 @@ odoo.define('website_form_editor', function (require) {
const core = require('web.core');
const FormEditorRegistry = require('website_form.form_editor_registry');
const options = require('web_editor.snippets.options');
+require('website.editor.snippets.options');
const qweb = core.qweb;
const _t = core._t;
@@ -1149,4 +1150,21 @@ options.registry.WebsiteFormSubmitRequired = DisableOverlayButtonOption.extend({
return this._super.apply(this, arguments);
}
});
+
+// Disable "Shown on Mobile" option if for an hidden field
+options.registry.MobileVisibility.include({
+
+ //--------------------------------------------------------------------------
+ // Private
+ //--------------------------------------------------------------------------
+
+ /**
+ * @override
+ */
+ async _computeVisibility() {
+ // Same as default but overridden by other apps
+ return await this._super(...arguments)
+ && !this.$target.hasClass('s_website_form_field_hidden');
+ },
+});
});