From a8b0c50a536c89324286dc18d532e5459624d531 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Thu, 27 Feb 2025 13:17:05 -0500 Subject: [PATCH] chore: if originalSent without tokens, edit message to add new tokens (#1976) --- .../widgets/message_selection_overlay.dart | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib/pangea/toolbar/widgets/message_selection_overlay.dart b/lib/pangea/toolbar/widgets/message_selection_overlay.dart index 6eadc1c64..cf160981c 100644 --- a/lib/pangea/toolbar/widgets/message_selection_overlay.dart +++ b/lib/pangea/toolbar/widgets/message_selection_overlay.dart @@ -15,6 +15,8 @@ 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/toolbar/controllers/text_to_speech_controller.dart'; import 'package:fluffychat/pangea/toolbar/enums/activity_type_enum.dart'; import 'package:fluffychat/pangea/toolbar/enums/message_mode_enum.dart'; @@ -181,6 +183,24 @@ class MessageOverlayController extends State 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, + ); + } } catch (e, s) { ErrorHandler.logError( e: e,