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(