From 9eb40e2b215c8daadc47516768caa539b1feec9d Mon Sep 17 00:00:00 2001 From: ggurdin Date: Thu, 5 Sep 2024 15:33:43 -0400 Subject: [PATCH] removed duplicate emoji picker widgets and fixed name of variable in chat controller to resolve late initialization error when sending an emoji reaction --- lib/pages/chat/chat.dart | 15 ++++---- lib/pages/chat/chat_emoji_picker.dart | 50 --------------------------- 2 files changed, 6 insertions(+), 59 deletions(-) diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index 09de93502..b07e7cbad 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -849,12 +849,9 @@ class ChatController extends State }); } - // #Pangea - // void hideEmojiPicker() { - void hideEmojiPicker({bool closeOverlay = false}) { - if (closeOverlay) { - MatrixState.pAnyState.closeOverlay(); - } + void hideEmojiPicker() { + // #Pangea + clearSelectedEvents(); // Pangea# setState(() => showEmojiPicker = false); } @@ -1221,7 +1218,7 @@ class ChatController extends State setState(() => showEmojiPicker = false); if (emoji == null) return; // make sure we don't send the same emoji twice - if (allReactionEvents.any( + if (_allReactionEvents.any( (e) => e.content.tryGetMap('m.relates_to')?['key'] == emoji.emoji, )) { return; @@ -1245,7 +1242,7 @@ class ChatController extends State ); } - late Iterable allReactionEvents; + late Iterable _allReactionEvents; void emojiPickerBackspace() { switch (emojiPickerType) { @@ -1266,7 +1263,7 @@ class ChatController extends State // #Pangea closeSelectionOverlay(); // Pangea# - allReactionEvents = allReactionEvents; + _allReactionEvents = allReactionEvents; emojiPickerType = EmojiPickerType.reaction; setState(() => showEmojiPicker = true); } diff --git a/lib/pages/chat/chat_emoji_picker.dart b/lib/pages/chat/chat_emoji_picker.dart index 011e3dc4b..c016da6b9 100644 --- a/lib/pages/chat/chat_emoji_picker.dart +++ b/lib/pages/chat/chat_emoji_picker.dart @@ -82,56 +82,6 @@ class ChatEmojiPicker extends StatelessWidget { ], ), ), - Expanded( - child: TabBarView( - children: [ - EmojiPicker( - onEmojiSelected: controller.onEmojiSelected, - onBackspacePressed: controller.emojiPickerBackspace, - config: Config( - emojiViewConfig: EmojiViewConfig( - noRecents: const NoRecent(), - backgroundColor: Theme.of(context) - .colorScheme - .onInverseSurface, - ), - bottomActionBarConfig: const BottomActionBarConfig( - enabled: false, - ), - categoryViewConfig: CategoryViewConfig( - backspaceColor: theme.colorScheme.primary, - iconColor: - theme.colorScheme.primary.withOpacity(0.5), - iconColorSelected: theme.colorScheme.primary, - indicatorColor: theme.colorScheme.primary, - ), - skinToneConfig: SkinToneConfig( - dialogBackgroundColor: Color.lerp( - theme.colorScheme.surface, - theme.colorScheme.primaryContainer, - 0.75, - )!, - indicatorColor: theme.colorScheme.onSurface, - ), - ), - ), - StickerPickerDialog( - room: controller.room, - onSelected: (sticker) { - controller.room.sendEvent( - { - 'body': sticker.body, - 'info': sticker.info ?? {}, - 'url': sticker.url.toString(), - }, - type: EventTypes.Sticker, - ); - controller.hideEmojiPicker(); - }, - ), - ], - ), - ), // #Pangea Padding( padding: const EdgeInsets.symmetric(vertical: 8.0),