chore: on token feedback response, replace all tokens when available (#5715)
This commit is contained in:
parent
55de949924
commit
dea49e3086
2 changed files with 19 additions and 27 deletions
|
|
@ -14,7 +14,6 @@ import 'package:fluffychat/pangea/phonetic_transcription/pt_v2_models.dart';
|
|||
import 'package:fluffychat/pangea/phonetic_transcription/pt_v2_repo.dart';
|
||||
import 'package:fluffychat/pangea/token_info_feedback/token_info_feedback_repo.dart';
|
||||
import 'package:fluffychat/pangea/token_info_feedback/token_info_feedback_request.dart';
|
||||
import 'package:fluffychat/pangea/token_info_feedback/token_info_feedback_response.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/word_card/word_zoom_widget.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
|
||||
|
|
@ -36,11 +35,12 @@ class TokenInfoFeedbackDialog extends StatelessWidget {
|
|||
data: requestData,
|
||||
);
|
||||
|
||||
final TokenInfoFeedbackResponse response =
|
||||
await TokenInfoFeedbackRepo.submitFeedback(request);
|
||||
|
||||
final response = await TokenInfoFeedbackRepo.submitFeedback(request);
|
||||
final originalToken = requestData.tokens[requestData.selectedToken];
|
||||
final token = response.updatedToken ?? originalToken;
|
||||
final token =
|
||||
response.updatedTokens?[requestData.selectedToken] ??
|
||||
response.updatedToken ??
|
||||
originalToken;
|
||||
|
||||
// first, update lemma info if changed
|
||||
if (response.updatedLemmaInfo != null) {
|
||||
|
|
@ -55,7 +55,8 @@ class TokenInfoFeedbackDialog extends StatelessWidget {
|
|||
final originalSent = event?.originalSent;
|
||||
|
||||
// if no other changes, just return the message
|
||||
final hasTokenUpdate = response.updatedToken != null;
|
||||
final hasTokenUpdate =
|
||||
response.updatedTokens != null || response.updatedToken != null;
|
||||
final hasLangUpdate =
|
||||
originalSent != null &&
|
||||
response.updatedLanguage != null &&
|
||||
|
|
@ -66,8 +67,10 @@ class TokenInfoFeedbackDialog extends StatelessWidget {
|
|||
}
|
||||
|
||||
// update the tokens to be sent in the message edit
|
||||
final tokens = List<PangeaToken>.from(requestData.tokens);
|
||||
if (hasTokenUpdate) {
|
||||
List<PangeaToken> tokens = List<PangeaToken>.from(requestData.tokens);
|
||||
if (response.updatedTokens != null) {
|
||||
tokens = response.updatedTokens!;
|
||||
} else if (response.updatedToken != null) {
|
||||
tokens[requestData.selectedToken] = response.updatedToken!;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import 'package:fluffychat/pangea/phonetic_transcription/pt_v2_models.dart';
|
|||
class TokenInfoFeedbackResponse implements JsonSerializable {
|
||||
final String userFriendlyMessage;
|
||||
final PangeaToken? updatedToken;
|
||||
final List<PangeaToken>? updatedTokens;
|
||||
final LemmaInfoResponse? updatedLemmaInfo;
|
||||
final PTResponse? updatedPhonetics;
|
||||
final String? updatedLanguage;
|
||||
|
|
@ -13,6 +14,7 @@ class TokenInfoFeedbackResponse implements JsonSerializable {
|
|||
TokenInfoFeedbackResponse({
|
||||
required this.userFriendlyMessage,
|
||||
this.updatedToken,
|
||||
this.updatedTokens,
|
||||
this.updatedLemmaInfo,
|
||||
this.updatedPhonetics,
|
||||
this.updatedLanguage,
|
||||
|
|
@ -24,6 +26,11 @@ class TokenInfoFeedbackResponse implements JsonSerializable {
|
|||
updatedToken: json['updated_token'] != null
|
||||
? PangeaToken.fromJson(json['updated_token'] as Map<String, dynamic>)
|
||||
: null,
|
||||
updatedTokens: json['updated_tokens'] != null
|
||||
? (json['updated_tokens'] as List<dynamic>)
|
||||
.map((e) => PangeaToken.fromJson(e as Map<String, dynamic>))
|
||||
.toList()
|
||||
: null,
|
||||
updatedLemmaInfo: json['updated_lemma_info'] != null
|
||||
? LemmaInfoResponse.fromJson(
|
||||
json['updated_lemma_info'] as Map<String, dynamic>,
|
||||
|
|
@ -43,28 +50,10 @@ class TokenInfoFeedbackResponse implements JsonSerializable {
|
|||
return {
|
||||
'user_friendly_message': userFriendlyMessage,
|
||||
'updated_token': updatedToken?.toJson(),
|
||||
'updated_tokens': updatedTokens?.map((e) => e.toJson()).toList(),
|
||||
'updated_lemma_info': updatedLemmaInfo?.toJson(),
|
||||
'updated_phonetics': updatedPhonetics?.toJson(),
|
||||
'updated_language': updatedLanguage,
|
||||
};
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is TokenInfoFeedbackResponse &&
|
||||
runtimeType == other.runtimeType &&
|
||||
userFriendlyMessage == other.userFriendlyMessage &&
|
||||
updatedToken == other.updatedToken &&
|
||||
updatedLemmaInfo == other.updatedLemmaInfo &&
|
||||
updatedPhonetics == other.updatedPhonetics &&
|
||||
updatedLanguage == other.updatedLanguage;
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
userFriendlyMessage.hashCode ^
|
||||
updatedToken.hashCode ^
|
||||
updatedLemmaInfo.hashCode ^
|
||||
updatedPhonetics.hashCode ^
|
||||
updatedLanguage.hashCode;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue