diff --git a/app/assets/javascripts/discourse/app/components/emoji-picker.js b/app/assets/javascripts/discourse/app/components/emoji-picker.js index c02e2e9be4f..9d695ee8f58 100644 --- a/app/assets/javascripts/discourse/app/components/emoji-picker.js +++ b/app/assets/javascripts/discourse/app/components/emoji-picker.js @@ -92,6 +92,8 @@ export default Component.extend({ return; } + document.addEventListener("click", this.handleOutsideClick); + const popperAnchor = this._getPopperAnchor(); if (!this.site.isMobileDevice && this.usePopper && popperAnchor) { @@ -137,8 +139,6 @@ export default Component.extend({ // of blocking the rendering of the picker discourseLater(() => { schedule("afterRender", () => { - document.addEventListener("click", this.handleOutsideClick); - if (!this.site.isMobileDevice || this.isEditorFocused) { emojiPicker.querySelector("input.filter")?.focus(); @@ -465,7 +465,7 @@ export default Component.extend({ @bind handleOutsideClick(event) { - if (!document.querySelector(".emoji-picker")?.contains(event.target)) { + if (!event.target.closest(".emoji-picker")) { this.onClose(event); } }, diff --git a/app/assets/javascripts/discourse/app/lib/autocomplete.js b/app/assets/javascripts/discourse/app/lib/autocomplete.js index 43424f57929..46e441e9418 100644 --- a/app/assets/javascripts/discourse/app/lib/autocomplete.js +++ b/app/assets/javascripts/discourse/app/lib/autocomplete.js @@ -148,11 +148,8 @@ export default function (options) { function closeAutocomplete() { _autoCompletePopper?.destroy(); - options.onClose && options.onClose(); - - if (div) { - div.hide().remove(); - } + options.onClose?.(); + div?.hide()?.remove(); div = null; scrollElement = null; completeStart = null; @@ -376,6 +373,7 @@ export default function (options) { ul.find("li").click(async function ({ originalEvent }) { // this is required to prevent the default behaviour when clicking on a tag originalEvent.preventDefault(); + originalEvent.stopPropagation(); selectedOption = ul.find("li").index(this); // hack for Gboard, see meta.discourse.org/t/-/187009/24