Merge pull request #3262 from pangeachat/3250-clicking-on-a-message-you-didnt-send-edits-the-message-when-youre-an-admin-of-a-room
chore: if originalSent doesn't have tokens, don't include it in repre…
This commit is contained in:
commit
e3137e69f9
2 changed files with 14 additions and 22 deletions
|
|
@ -396,7 +396,15 @@ class PangeaMessageEvent {
|
|||
),
|
||||
);
|
||||
}
|
||||
_representations!.add(sent);
|
||||
|
||||
// If originalSent has no tokens, there is not way to generate a tokens event
|
||||
// and send it as a related event, since original sent has not eventID to set
|
||||
// as parentEventId. In this case, it's better to generate a new representation
|
||||
// with an eventID and send the related tokens event to that representation.
|
||||
// This is a rare situation, and has only been seen with some bot messages.
|
||||
if (sent.tokens != null) {
|
||||
_representations!.add(sent);
|
||||
}
|
||||
} catch (err, s) {
|
||||
ErrorHandler.logError(
|
||||
m: "error parsing originalSent",
|
||||
|
|
|
|||
|
|
@ -18,8 +18,6 @@ import 'package:fluffychat/pangea/events/event_wrappers/pangea_message_event.dar
|
|||
import 'package:fluffychat/pangea/events/event_wrappers/pangea_representation_event.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_text_model.dart';
|
||||
import 'package:fluffychat/pangea/events/models/tokens_event_content_model.dart';
|
||||
import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/lemmas/lemma_info_response.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/activity_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_activity_model.dart';
|
||||
|
|
@ -135,7 +133,11 @@ class MessageOverlayController extends State<MessageSelectionOverlay>
|
|||
|
||||
RepresentationEvent? repEvent =
|
||||
pangeaMessageEvent?.messageDisplayRepresentation;
|
||||
repEvent ??= await _fetchNewRepEvent();
|
||||
|
||||
if (repEvent == null ||
|
||||
(repEvent.event == null && repEvent.tokens == null)) {
|
||||
repEvent = await _fetchNewRepEvent();
|
||||
}
|
||||
|
||||
if (repEvent?.event != null) {
|
||||
await repEvent!.sendTokensEvent(
|
||||
|
|
@ -145,24 +147,6 @@ class MessageOverlayController extends State<MessageSelectionOverlay>
|
|||
MatrixState.pangeaController.languageController.userL2!.langCode,
|
||||
);
|
||||
}
|
||||
// If repEvent is originalSent but it's missing tokens, then fetch tokens.
|
||||
// An edge case, but has happened with some bot message.
|
||||
else if (repEvent != null &&
|
||||
repEvent.tokens == null &&
|
||||
repEvent.content.originalSent) {
|
||||
final tokens = await repEvent.tokensGlobal(
|
||||
pangeaMessageEvent!.senderId,
|
||||
pangeaMessageEvent!.event.originServerTs,
|
||||
);
|
||||
await pangeaMessageEvent!.room.pangeaSendTextEvent(
|
||||
pangeaMessageEvent!.messageDisplayText,
|
||||
editEventId: pangeaMessageEvent!.eventId,
|
||||
originalSent: pangeaMessageEvent!.originalSent?.content,
|
||||
originalWritten: pangeaMessageEvent!.originalWritten?.content,
|
||||
tokensSent: PangeaMessageTokens(tokens: tokens),
|
||||
choreo: pangeaMessageEvent!.originalSent?.choreo,
|
||||
);
|
||||
}
|
||||
|
||||
// Get all the lemma infos
|
||||
final messageVocabConstructIds = pangeaMessageEvent!
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue