diff --git a/lib/pangea/activity_sessions/activity_session_chat/activity_vocab_widget.dart b/lib/pangea/activity_sessions/activity_session_chat/activity_vocab_widget.dart index fe30b2d24..4708c1634 100644 --- a/lib/pangea/activity_sessions/activity_session_chat/activity_vocab_widget.dart +++ b/lib/pangea/activity_sessions/activity_session_chat/activity_vocab_widget.dart @@ -99,22 +99,27 @@ class _VocabChipsState extends State<_VocabChips> with TokenRenderingMixin { OverlayUtil.showPositionedCard( overlayKey: target, context: context, - cardToShow: WordZoomWidget( - token: PangeaTokenText( - content: v.lemma, - length: v.lemma.characters.length, - offset: 0, + cardToShow: StatefulBuilder( + builder: (context, setState) => WordZoomWidget( + token: PangeaTokenText( + content: v.lemma, + length: v.lemma.characters.length, + offset: 0, + ), + construct: ConstructIdentifier( + lemma: v.lemma, + type: ConstructTypeEnum.vocab, + category: v.pos, + ), + langCode: widget.langCode, + onClose: () { + MatrixState.pAnyState.closeOverlay(target); + setState(() => _selectedVocab = null); + }, + onDismissNewWordOverlay: () { + if (mounted) setState(() {}); + }, ), - construct: ConstructIdentifier( - lemma: v.lemma, - type: ConstructTypeEnum.vocab, - category: v.pos, - ), - langCode: widget.langCode, - onClose: () { - MatrixState.pAnyState.closeOverlay(target); - setState(() => _selectedVocab = null); - }, ), transformTargetId: target, closePrevOverlay: false,