Merge pull request #5293 from pangeachat/5265-underline-remains-in-activity-vocab-list-after-i-click-away
fix: clear selected token in activity vocab display on word card dism…
This commit is contained in:
commit
a4e9068a60
1 changed files with 60 additions and 21 deletions
|
|
@ -106,27 +106,17 @@ class _VocabChipsState extends State<_VocabChips> with TokenRenderingMixin {
|
|||
OverlayUtil.showPositionedCard(
|
||||
overlayKey: target,
|
||||
context: context,
|
||||
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(() {});
|
||||
},
|
||||
),
|
||||
cardToShow: _WordCardWrapper(
|
||||
v: v,
|
||||
langCode: widget.langCode,
|
||||
target: target,
|
||||
onClose: () {
|
||||
if (mounted) {
|
||||
WidgetsBinding.instance.addPostFrameCallback(
|
||||
(_) => setState(() => _selectedVocab = null),
|
||||
);
|
||||
}
|
||||
},
|
||||
),
|
||||
transformTargetId: target,
|
||||
closePrevOverlay: false,
|
||||
|
|
@ -204,3 +194,52 @@ class _VocabChipsState extends State<_VocabChips> with TokenRenderingMixin {
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _WordCardWrapper extends StatefulWidget {
|
||||
final Vocab v;
|
||||
final String langCode;
|
||||
final String target;
|
||||
final VoidCallback onClose;
|
||||
|
||||
const _WordCardWrapper({
|
||||
required this.v,
|
||||
required this.langCode,
|
||||
required this.target,
|
||||
required this.onClose,
|
||||
});
|
||||
|
||||
@override
|
||||
State<_WordCardWrapper> createState() => _WordCardWrapperState();
|
||||
}
|
||||
|
||||
class _WordCardWrapperState extends State<_WordCardWrapper> {
|
||||
@override
|
||||
void dispose() {
|
||||
widget.onClose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return WordZoomWidget(
|
||||
token: PangeaTokenText(
|
||||
content: widget.v.lemma,
|
||||
length: widget.v.lemma.characters.length,
|
||||
offset: 0,
|
||||
),
|
||||
construct: ConstructIdentifier(
|
||||
lemma: widget.v.lemma,
|
||||
type: ConstructTypeEnum.vocab,
|
||||
category: widget.v.pos,
|
||||
),
|
||||
langCode: widget.langCode,
|
||||
onClose: () {
|
||||
MatrixState.pAnyState.closeOverlay(widget.target);
|
||||
widget.onClose();
|
||||
},
|
||||
onDismissNewWordOverlay: () {
|
||||
if (mounted) setState(() {});
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue