From 8ce6c2fa8f9bd267f2e419ab14b03e4d49c740cf Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Fri, 2 Jan 2026 10:28:36 -0500 Subject: [PATCH] fix: rebuild word card on new word overlay dismissed (#5030) --- .../activity_vocab_widget.dart | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) 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,