fix: on update POS morph feature, also update token's POS (#1643)
This commit is contained in:
parent
10401a7685
commit
fa1bde06f6
4 changed files with 28 additions and 24 deletions
|
|
@ -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,19 +293,22 @@ class MorphologicalCenterWidgetState extends State<MorphologicalCenterWidget> {
|
|||
),
|
||||
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),
|
||||
),
|
||||
],
|
||||
|
|
|
|||
|
|
@ -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…
Add table
Reference in a new issue