From bf0c49035d7afa21acd29bc89f6740236791c1c6 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Tue, 20 Jan 2026 14:08:11 -0500 Subject: [PATCH] fix: use latest edit to make representations --- .../event_wrappers/pangea_message_event.dart | 43 ++++++++++++------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/lib/pangea/events/event_wrappers/pangea_message_event.dart b/lib/pangea/events/event_wrappers/pangea_message_event.dart index f1322fdf2..22cf8ca1d 100644 --- a/lib/pangea/events/event_wrappers/pangea_message_event.dart +++ b/lib/pangea/events/event_wrappers/pangea_message_event.dart @@ -114,7 +114,7 @@ class PangeaMessageEvent { .map( (e) => RepresentationEvent( event: e, - parentMessageEvent: _event, + parentMessageEvent: _latestEdit, timeline: timeline, ), ) @@ -181,14 +181,14 @@ class PangeaMessageEvent { final original = PangeaRepresentation( langCode: lang ?? LanguageKeys.unknownLanguage, - text: _event.body, + text: _latestEdit.body, originalSent: true, originalWritten: false, ); _representations!.add( RepresentationEvent( - parentMessageEvent: _event, + parentMessageEvent: _latestEdit, content: original, tokens: tokens, choreo: _embeddedChoreo, @@ -202,7 +202,7 @@ class PangeaMessageEvent { e: err, s: s, data: { - "event": _event.toJson(), + "event": _latestEdit.toJson(), }, ); } @@ -211,7 +211,7 @@ class PangeaMessageEvent { try { _representations!.add( RepresentationEvent( - parentMessageEvent: _event, + parentMessageEvent: _latestEdit, content: PangeaRepresentation.fromJson( _latestEdit.content[ModelKey.originalWritten] as Map, @@ -229,7 +229,7 @@ class PangeaMessageEvent { e: err, s: s, data: { - "event": _event.toJson(), + "event": _latestEdit.toJson(), }, ); } @@ -278,7 +278,8 @@ class PangeaMessageEvent { /// Gets the message display text for the current language code. /// If the message display text is not available for the current language code, /// it returns the message body. - String get messageDisplayText => messageDisplayRepresentation?.text ?? body; + String get messageDisplayText => + messageDisplayRepresentation?.text ?? _latestEdit.body; TextDirection get textDirection => LanguageConstants.rtlLanguageCodes.contains(messageDisplayLangCode) @@ -293,12 +294,14 @@ class PangeaMessageEvent { RepresentationEvent? representationByLanguage( String langCode, { bool Function(RepresentationEvent)? filter, - }) => - representations.firstWhereOrNull( - (element) => - element.langCode.split("-")[0] == langCode.split("-")[0] && - (filter?.call(element) ?? true), - ); + }) { + representations.firstWhereOrNull( + (element) => + element.langCode.split("-")[0] == langCode.split("-")[0] && + (filter?.call(element) ?? true), + ); + return null; + } Event? getTextToSpeechLocal(String langCode, String text) { for (final audio in allAudio) { @@ -492,7 +495,7 @@ class PangeaMessageEvent { _representations = null; return room.sendPangeaEvent( content: representation.toJson(), - parentEventId: eventId, + parentEventId: _latestEdit.eventId, type: PangeaEventTypes.representation, ); } @@ -586,6 +589,7 @@ class PangeaMessageEvent { } Future requestRespresentationByL1() async { + debugPrint("LATEST EDIT: ${_latestEdit.toJson()}"); if (_l1Code == null || _l2Code == null) { throw Exception("Missing language codes"); } @@ -597,7 +601,9 @@ class PangeaMessageEvent { RepresentationEvent? rep; if (!includedIT) { // if the message didn't go through translation, get any l1 rep + debugPrint("REPRESENTATIONS: ${representations.length}"); rep = representationByLanguage(_l1Code!); + debugPrint("REP: $rep"); } else { // if the message went through translation, get the non-original // l1 rep since originalWritten could contain some l2 words @@ -614,6 +620,13 @@ class PangeaMessageEvent { ? (originalWritten?.langCode ?? _l1Code!) : (originalSent?.langCode ?? _l2Code!); + debugPrint("Original written content: $originalWrittenContent"); + debugPrint("Message display text: $messageDisplayText"); + debugPrint("Original sent: ${originalSent?.content.toJson()}"); + debugPrint( + "Message display rep: ${representationByLanguage(messageDisplayLangCode)?.content.toJson()}", + ); + final resp = await _requestRepresentation( includedIT ? originalWrittenContent : messageDisplayText, _l1Code!, @@ -661,7 +674,7 @@ class PangeaMessageEvent { ) async { final repEvent = await room.sendPangeaEvent( content: representation.toJson(), - parentEventId: eventId, + parentEventId: _latestEdit.eventId, type: PangeaEventTypes.representation, ); return repEvent?.eventId;