fix crash on emoji selection from emojiboard (#2249)
authorAjay Bura <32841439+ajbura@users.noreply.github.com>
Wed, 5 Mar 2025 02:23:28 +0000 (13:23 +1100)
committerGitHub <noreply@github.com>
Wed, 5 Mar 2025 02:23:28 +0000 (13:23 +1100)
* fix crash on emoji select

* fix crash in message editor on emoji select

src/app/features/room/RoomInput.tsx
src/app/features/room/message/MessageEditor.tsx

index 97f805950b9a28a686404ba1512bc5d4a7cd63e0..eb214f6204e37ebea9ea10b53af5b0b73900056c 100644 (file)
@@ -600,8 +600,13 @@ export const RoomInput = forwardRef<HTMLDivElement, RoomInputProps>(
                         onCustomEmojiSelect={handleEmoticonSelect}
                         onStickerSelect={handleStickerSelect}
                         requestClose={() => {
-                          setEmojiBoardTab(undefined);
-                          if (!mobileOrTablet()) ReactEditor.focus(editor);
+                          setEmojiBoardTab((t) => {
+                            if (t) {
+                              if (!mobileOrTablet()) ReactEditor.focus(editor);
+                              return undefined;
+                            }
+                            return t;
+                          });
                         }}
                       />
                     }
index dc59dcdf6dbd5e5160d11466194a79a90eaead5c..ac97e2aa7d751ef827254047a57e213db4c7e5ee 100644 (file)
@@ -305,8 +305,13 @@ export const MessageEditor = as<'div', MessageEditorProps>(
                             onEmojiSelect={handleEmoticonSelect}
                             onCustomEmojiSelect={handleEmoticonSelect}
                             requestClose={() => {
-                              setAnchor(undefined);
-                              if (!mobileOrTablet()) ReactEditor.focus(editor);
+                              setAnchor((v) => {
+                                if (v) {
+                                  if (!mobileOrTablet()) ReactEditor.focus(editor);
+                                  return undefined;
+                                }
+                                return v;
+                              });
                             }}
                           />
                         }