fix: on update POS morph feature, also update token's POS (#1643)

pull/1593/head
ggurdin 10 months ago committed by GitHub
parent 10401a7685
commit fa1bde06f6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -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/

@ -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<LemmaMeaningWidget> {
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<LemmaMeaningWidget> {
}
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<LemmaMeaningWidget> {
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),
),

@ -293,8 +293,8 @@ class MorphologicalCenterWidgetState extends State<MorphologicalCenterWidget> {
),
padding: const EdgeInsets.symmetric(horizontal: 10),
),
onPressed:
selectedMorphTag == widget.token.morph[widget.morphFeature]
onPressed: selectedMorphTag ==
widget.token.morph[widget.morphFeature]
? null
: () => showFutureLoadingDialog(
context: context,
@ -302,6 +302,9 @@ class MorphologicalCenterWidgetState extends State<MorphologicalCenterWidget> {
(token) {
token.morph[widget.morphFeature] =
selectedMorphTag;
if (widget.morphFeature.toLowerCase() == 'pos') {
token.pos = selectedMorphTag;
}
return token;
},
),

@ -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,
);

Loading…
Cancel
Save