diff --git a/lib/pangea/events/models/pangea_token_model.dart b/lib/pangea/events/models/pangea_token_model.dart index 68a4f449b..709cbd1bb 100644 --- a/lib/pangea/events/models/pangea_token_model.dart +++ b/lib/pangea/events/models/pangea_token_model.dart @@ -35,7 +35,7 @@ class PangeaToken { /// [pos] ex "VERB" - part of speech of the token /// https://universaldependencies.org/u/pos/ - final String pos; + String pos; /// [_morph] ex {} - morphological features of the token /// https://universaldependencies.org/u/feat/ diff --git a/lib/pangea/toolbar/widgets/word_zoom/lemma_meaning_widget.dart b/lib/pangea/toolbar/widgets/word_zoom/lemma_meaning_widget.dart index 20c68eb7f..f4faf4f46 100644 --- a/lib/pangea/toolbar/widgets/word_zoom/lemma_meaning_widget.dart +++ b/lib/pangea/toolbar/widgets/word_zoom/lemma_meaning_widget.dart @@ -9,18 +9,17 @@ import 'package:fluffychat/pangea/analytics/repo/lemma_info_repo.dart'; import 'package:fluffychat/pangea/analytics/repo/lemma_info_request.dart'; import 'package:fluffychat/pangea/analytics/repo/lemma_info_response.dart'; import 'package:fluffychat/pangea/analytics/widgets/text_loading_shimmer.dart'; +import 'package:fluffychat/pangea/events/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/learning_settings/constants/language_constants.dart'; import 'package:fluffychat/widgets/matrix.dart'; class LemmaMeaningWidget extends StatefulWidget { - final String lemma; - final String pos; + final PangeaToken token; final String langCode; const LemmaMeaningWidget({ super.key, - required this.lemma, - required this.pos, + required this.token, required this.langCode, }); @@ -32,6 +31,10 @@ class LemmaMeaningWidgetState extends State { bool _editMode = false; late TextEditingController _controller; + String get _lemma => widget.token.lemma.text.isNotEmpty + ? widget.token.lemma.text + : widget.token.lemma.form; + @override void initState() { super.initState(); @@ -45,8 +48,8 @@ class LemmaMeaningWidgetState extends State { } LemmaInfoRequest get _request => LemmaInfoRequest( - lemma: widget.lemma, - partOfSpeech: widget.pos, + lemma: _lemma, + partOfSpeech: widget.token.pos, /// This assumes that the user's L2 is the language of the lemma lemmaLang: widget.langCode, @@ -82,7 +85,7 @@ class LemmaMeaningWidgetState extends State { mainAxisSize: MainAxisSize.min, children: [ Text( - "${L10n.of(context).pangeaBotIsFallible} ${L10n.of(context).whatIsMeaning(widget.lemma, widget.pos)}", + "${L10n.of(context).pangeaBotIsFallible} ${L10n.of(context).whatIsMeaning(_lemma, widget.token.pos)}", textAlign: TextAlign.center, style: const TextStyle(fontStyle: FontStyle.italic), ), diff --git a/lib/pangea/toolbar/widgets/word_zoom/morphs/morphological_center_widget.dart b/lib/pangea/toolbar/widgets/word_zoom/morphs/morphological_center_widget.dart index e83f84c61..0b0483cd3 100644 --- a/lib/pangea/toolbar/widgets/word_zoom/morphs/morphological_center_widget.dart +++ b/lib/pangea/toolbar/widgets/word_zoom/morphs/morphological_center_widget.dart @@ -293,19 +293,22 @@ class MorphologicalCenterWidgetState extends State { ), padding: const EdgeInsets.symmetric(horizontal: 10), ), - onPressed: - selectedMorphTag == widget.token.morph[widget.morphFeature] - ? null - : () => showFutureLoadingDialog( - context: context, - future: () => saveChanges( - (token) { - token.morph[widget.morphFeature] = - selectedMorphTag; - return token; - }, - ), - ), + onPressed: selectedMorphTag == + widget.token.morph[widget.morphFeature] + ? null + : () => showFutureLoadingDialog( + context: context, + future: () => saveChanges( + (token) { + token.morph[widget.morphFeature] = + selectedMorphTag; + if (widget.morphFeature.toLowerCase() == 'pos') { + token.pos = selectedMorphTag; + } + return token; + }, + ), + ), child: Text(L10n.of(context).saveChanges), ), ], diff --git a/lib/pangea/toolbar/widgets/word_zoom/word_zoom_center_widget.dart b/lib/pangea/toolbar/widgets/word_zoom/word_zoom_center_widget.dart index c953e3489..056375aa7 100644 --- a/lib/pangea/toolbar/widgets/word_zoom/word_zoom_center_widget.dart +++ b/lib/pangea/toolbar/widgets/word_zoom/word_zoom_center_widget.dart @@ -54,9 +54,7 @@ class WordZoomCenterWidget extends StatelessWidget { : const Text("emoji is null"); case WordZoomSelection.meaning: return LemmaMeaningWidget( - lemma: - token.lemma.text.isNotEmpty ? token.lemma.text : token.lemma.form, - pos: token.pos, + token: token, langCode: wordDetailsController.widget.messageEvent.messageDisplayLangCode, );