diff --git a/addons/web_editor/static/src/js/editor/snippets.editor.js b/addons/web_editor/static/src/js/editor/snippets.editor.js index e7a25e62566..455a5ab58ef 100644 --- a/addons/web_editor/static/src/js/editor/snippets.editor.js +++ b/addons/web_editor/static/src/js/editor/snippets.editor.js @@ -896,10 +896,6 @@ var SnippetEditor = Widget.extend({ if (isMobilePreview === isMobileHidden) { // Preview mode and hidden type are the same. show = false; - } else { - // Preview mode is not related to hidden type. - delete this.$target[0].dataset.invisible; - return false; } } } @@ -4473,9 +4469,15 @@ var SnippetsMenu = Widget.extend({ gridUtils._reloadLazyImages(gridItemEl); } + const isMobilePreview = weUtils.isMobileView(this.$body[0]); for (const invisibleOverrideEl of this.getEditableArea().find('.o_snippet_mobile_invisible, .o_snippet_desktop_invisible')) { + const isMobileHidden = invisibleOverrideEl.classList.contains("o_snippet_mobile_invisible"); invisibleOverrideEl.classList.remove('o_snippet_override_invisible'); - invisibleOverrideEl.dataset.invisible = '1'; + if (isMobilePreview === isMobileHidden) { + invisibleOverrideEl.dataset.invisible = '1'; + } else { + delete invisibleOverrideEl.dataset.invisible; + } } // This is async but using the main editor mutex, currently locked. diff --git a/addons/website/static/src/js/editor/snippets.options.js b/addons/website/static/src/js/editor/snippets.options.js index 5d2398729c8..bb907e6f42b 100644 --- a/addons/website/static/src/js/editor/snippets.options.js +++ b/addons/website/static/src/js/editor/snippets.options.js @@ -2596,8 +2596,11 @@ options.registry.DeviceVisibility = options.Class.extend({ * @override */ async onTargetShow() { - if (this.$target[0].classList.contains('o_snippet_mobile_invisible') - || this.$target[0].classList.contains('o_snippet_desktop_invisible')) { + const isMobilePreview = weUtils.isMobileView(this.$target[0]); + const isMobileHidden = this.$target[0].classList.contains("o_snippet_mobile_invisible"); + if ((this.$target[0].classList.contains('o_snippet_mobile_invisible') + || this.$target[0].classList.contains('o_snippet_desktop_invisible') + ) && isMobilePreview === isMobileHidden) { this.$target[0].classList.add('o_snippet_override_invisible'); } },