diff --git a/lib/pangea/lemmas/lemma_highlight_emoji_row.dart b/lib/pangea/lemmas/lemma_highlight_emoji_row.dart index 186190db3..060751991 100644 --- a/lib/pangea/lemmas/lemma_highlight_emoji_row.dart +++ b/lib/pangea/lemmas/lemma_highlight_emoji_row.dart @@ -22,6 +22,7 @@ class LemmaHighlightEmojiRow extends StatefulWidget { final String? emoji; final Widget? selectedEmojiBadge; + final bool enabled; const LemmaHighlightEmojiRow({ super.key, @@ -32,6 +33,7 @@ class LemmaHighlightEmojiRow extends StatefulWidget { required this.messageInfo, this.emoji, this.selectedEmojiBadge, + this.enabled = true, }); @override @@ -89,6 +91,7 @@ class LemmaHighlightEmojiRowState extends State ? widget.selectedEmojiBadge : null, showShimmer: widget.emoji == null, + enabled: widget.enabled, ); }, ).toList(), @@ -107,6 +110,7 @@ class EmojiChoiceItem extends StatefulWidget { final String transformTargetId; final Widget? badge; final bool showShimmer; + final bool enabled; const EmojiChoiceItem({ super.key, @@ -117,6 +121,7 @@ class EmojiChoiceItem extends StatefulWidget { required this.transformTargetId, this.badge, this.showShimmer = true, + this.enabled = true, }); @override @@ -148,7 +153,7 @@ class EmojiChoiceItemState extends State { } void _showShimmer() { - if (!widget.showShimmer) return; + if (!widget.showShimmer || !widget.enabled) return; setState(() => shimmer = true); _shimmerTimer?.cancel(); @@ -171,7 +176,7 @@ class EmojiChoiceItemState extends State { Widget build(BuildContext context) { return HoverBuilder( builder: (context, hovered) => GestureDetector( - onTap: widget.onSelectEmoji, + onTap: widget.enabled ? widget.onSelectEmoji : null, child: Stack( children: [ ShimmerBackground( @@ -190,7 +195,7 @@ class EmojiChoiceItemState extends State { duration: const Duration(milliseconds: 200), padding: const EdgeInsets.all(10), decoration: BoxDecoration( - color: hovered || widget.selected + color: widget.enabled && (hovered || widget.selected) ? Theme.of(context).colorScheme.secondary.withAlpha(30) : Colors.transparent, borderRadius: BorderRadius.circular(AppConfig.borderRadius), diff --git a/lib/pangea/token_info_feedback/show_token_feedback_dialog.dart b/lib/pangea/token_info_feedback/show_token_feedback_dialog.dart index bcb58a996..7d60c9181 100644 --- a/lib/pangea/token_info_feedback/show_token_feedback_dialog.dart +++ b/lib/pangea/token_info_feedback/show_token_feedback_dialog.dart @@ -22,6 +22,7 @@ class TokenFeedbackUtil { ), ); + if (resp == null) return; await showDialog( context: context, builder: (context) { diff --git a/lib/pangea/token_info_feedback/token_info_feedback_dialog.dart b/lib/pangea/token_info_feedback/token_info_feedback_dialog.dart index fefd83cbe..a897fd605 100644 --- a/lib/pangea/token_info_feedback/token_info_feedback_dialog.dart +++ b/lib/pangea/token_info_feedback/token_info_feedback_dialog.dart @@ -152,6 +152,7 @@ class TokenInfoFeedbackDialog extends StatelessWidget { token: selectedToken.text, construct: selectedToken.vocabConstructID, langCode: langCode, + enableEmojiSelection: false, ), ); } diff --git a/lib/pangea/toolbar/layout/message_selection_positioner.dart b/lib/pangea/toolbar/layout/message_selection_positioner.dart index 36f383dbf..8a80de8c5 100644 --- a/lib/pangea/toolbar/layout/message_selection_positioner.dart +++ b/lib/pangea/toolbar/layout/message_selection_positioner.dart @@ -110,9 +110,6 @@ class MessageSelectionPositionerState extends State _reactionSubscription?.cancel(); _contentChangedSubscription?.cancel(); scrollController?.dispose(); - Matrix.of(context).audioPlayer - ?..stop() - ..dispose(); super.dispose(); } diff --git a/lib/pangea/toolbar/word_card/lemma_reaction_picker.dart b/lib/pangea/toolbar/word_card/lemma_reaction_picker.dart index 3be795cf2..ce42e1da6 100644 --- a/lib/pangea/toolbar/word_card/lemma_reaction_picker.dart +++ b/lib/pangea/toolbar/word_card/lemma_reaction_picker.dart @@ -13,12 +13,14 @@ class LemmaReactionPicker extends StatefulWidget with LemmaEmojiSetter { final Event? event; final ConstructIdentifier constructId; final String langCode; + final bool enabled; const LemmaReactionPicker({ super.key, required this.constructId, required this.langCode, this.event, + this.enabled = true, }); @override @@ -120,6 +122,7 @@ class LemmaReactionPickerState extends State { size: 12.0, ) : null, + enabled: widget.enabled, ); }, ); diff --git a/lib/pangea/toolbar/word_card/word_zoom_widget.dart b/lib/pangea/toolbar/word_card/word_zoom_widget.dart index 3d30a381c..5537a1a04 100644 --- a/lib/pangea/toolbar/word_card/word_zoom_widget.dart +++ b/lib/pangea/toolbar/word_card/word_zoom_widget.dart @@ -27,6 +27,7 @@ class WordZoomWidget extends StatelessWidget { final Event? event; + final bool enableEmojiSelection; final VoidCallback? onDismissNewWordOverlay; final Function(LemmaInfoResponse, String)? onFlagTokenInfo; @@ -37,6 +38,7 @@ class WordZoomWidget extends StatelessWidget { required this.langCode, this.onClose, this.event, + this.enableEmojiSelection = true, this.onDismissNewWordOverlay, this.onFlagTokenInfo, }); @@ -156,6 +158,7 @@ class WordZoomWidget extends StatelessWidget { constructId: construct, langCode: langCode, event: event, + enabled: enableEmojiSelection, ), LemmaMeaningDisplay( langCode: langCode,