From ed4f80d58912dc2a836b04ddf7062fe808266e27 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Thu, 29 Aug 2024 17:00:26 +0100 Subject: [PATCH] FIX: Chat emoji picker positioning (#28643) Removes chat-specific changes from dfc947a97dd37d5ec58e1c971a9a2285429dd98d, and adds `preventScroll: true` to prevent timing issues between the emoji picker being brought into the viewport and being focussed. --- .../components/chat-channel-message-emoji-picker.gjs | 8 ++++---- .../javascripts/discourse/components/chat-emoji-picker.js | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/chat/assets/javascripts/discourse/components/chat-channel-message-emoji-picker.gjs b/plugins/chat/assets/javascripts/discourse/components/chat-channel-message-emoji-picker.gjs index 7f440438f5c..7a8316176f9 100644 --- a/plugins/chat/assets/javascripts/discourse/components/chat-channel-message-emoji-picker.gjs +++ b/plugins/chat/assets/javascripts/discourse/components/chat-channel-message-emoji-picker.gjs @@ -13,10 +13,6 @@ export default class ChatChannelMessageEmojiPicker extends Component { context = "chat-channel-message"; listenToBodyScroll = modifier(() => { - if (!this.site.mobileView) { - return; - } - const handler = () => { this.chatEmojiPickerManager.close(); }; @@ -47,6 +43,10 @@ export default class ChatChannelMessageEmojiPicker extends Component { { placement: "top", modifiers: [ + { + name: "eventListeners", + options: { scroll: false, resize: false }, + }, { name: "flip", options: { padding: { top: headerOffset() } }, diff --git a/plugins/chat/assets/javascripts/discourse/components/chat-emoji-picker.js b/plugins/chat/assets/javascripts/discourse/components/chat-emoji-picker.js index 519daa81ed6..c64a3695c0c 100644 --- a/plugins/chat/assets/javascripts/discourse/components/chat-emoji-picker.js +++ b/plugins/chat/assets/javascripts/discourse/components/chat-emoji-picker.js @@ -215,7 +215,7 @@ export default class ChatEmojiPicker extends Component { @action focusFilter(target) { schedule("afterRender", () => { - target?.focus(); + target?.focus({ preventScroll: true }); }); }