chore: disable lemma emoji selection for word card in token feedback dialog (#5026)

This commit is contained in:
ggurdin 2026-01-02 09:35:48 -05:00 committed by GitHub
parent 9fd68c7b3d
commit 18bd2e4b6a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 16 additions and 6 deletions

View file

@ -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<LemmaHighlightEmojiRow>
? 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<EmojiChoiceItem> {
}
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<EmojiChoiceItem> {
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<EmojiChoiceItem> {
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),

View file

@ -22,6 +22,7 @@ class TokenFeedbackUtil {
),
);
if (resp == null) return;
await showDialog(
context: context,
builder: (context) {

View file

@ -152,6 +152,7 @@ class TokenInfoFeedbackDialog extends StatelessWidget {
token: selectedToken.text,
construct: selectedToken.vocabConstructID,
langCode: langCode,
enableEmojiSelection: false,
),
);
}

View file

@ -110,9 +110,6 @@ class MessageSelectionPositionerState extends State<MessageSelectionPositioner>
_reactionSubscription?.cancel();
_contentChangedSubscription?.cancel();
scrollController?.dispose();
Matrix.of(context).audioPlayer
?..stop()
..dispose();
super.dispose();
}

View file

@ -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<LemmaReactionPicker> {
size: 12.0,
)
: null,
enabled: widget.enabled,
);
},
);

View file

@ -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,