From 9139c992acd46975cf78d8229371a549b21f50f7 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Mon, 16 Jun 2025 12:00:53 -0400 Subject: [PATCH] chore: update emojis when switching between different tokens --- lib/pangea/lemmas/lemma_reaction_picker.dart | 32 +++++++++++++++----- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/lib/pangea/lemmas/lemma_reaction_picker.dart b/lib/pangea/lemmas/lemma_reaction_picker.dart index b229f2396..92a3a70ef 100644 --- a/lib/pangea/lemmas/lemma_reaction_picker.dart +++ b/lib/pangea/lemmas/lemma_reaction_picker.dart @@ -28,17 +28,35 @@ class LemmaReactionPickerState extends State { @override void initState() { super.initState(); - widget.cId.getLemmaInfo().then((info) { - loading = false; - setState(() => displayEmoji = info.emoji); - }).catchError((e, s) { - ErrorHandler.logError(data: widget.cId.toJson(), e: e, s: s); - setState(() => loading = false); - }); + _refresh(); + } + + @override + void didUpdateWidget(LemmaReactionPicker oldWidget) { + super.didUpdateWidget(oldWidget); + if (oldWidget.cId != widget.cId) { + _refresh(); + } } void setEmoji(String emoji) => widget.controller.sendEmojiAction(emoji); + Future _refresh() async { + setState(() { + loading = true; + displayEmoji = []; + }); + + try { + final info = await widget.cId.getLemmaInfo(); + displayEmoji = info.emoji; + } catch (e, s) { + ErrorHandler.logError(data: widget.cId.toJson(), e: e, s: s); + } finally { + setState(() => loading = false); + } + } + @override Widget build(BuildContext context) { return Container(