diff --git a/lib/controllers/message_controller.dart b/lib/controllers/message_controller.dart index b6e326b..5a2e6e7 100644 --- a/lib/controllers/message_controller.dart +++ b/lib/controllers/message_controller.dart @@ -70,6 +70,7 @@ class MessageController extends AsyncNotifier { "body": newContent?["body"] ?? content["body"], "eventType": type, "avatarUrl": author?.content["avatar_url"], + "editSource": event.localContent?.editSource, "displayName": author?.content["displayname"]?.isNotEmpty == true ? author?.content["displayname"] : event.authorId.substring(1).split(":")[0], diff --git a/lib/models/event.dart b/lib/models/event.dart index c2f157f..734f667 100644 --- a/lib/models/event.dart +++ b/lib/models/event.dart @@ -38,6 +38,7 @@ abstract class Event with _$Event { abstract class LocalContent with _$LocalContent { const factory LocalContent({ String? sanitizedHtml, + String? editSource, bool? wasPlaintext, bool? bigEmoji, bool? hasMath, diff --git a/lib/widgets/chat_page/chat_box.dart b/lib/widgets/chat_page/chat_box.dart index 885ddd9..20a8116 100644 --- a/lib/widgets/chat_page/chat_box.dart +++ b/lib/widgets/chat_page/chat_box.dart @@ -34,14 +34,7 @@ class ChatBox extends HookConsumerWidget { if (relationType == RelationType.edit && relatedMessage is TextMessage && controller.value.text.isEmpty) { - final text = (relatedMessage as TextMessage).text; - final splitText = relatedMessage?.replyToMessageId == null - ? text - : text.split("\n\n").sublist(1).join("\n\n"); - final notEmpty = splitText.isEmpty ? text : splitText; - controller.value.text = notEmpty.startsWith("* ") - ? notEmpty.substring(2) - : notEmpty; + controller.value.text = relatedMessage?.metadata?["editSource"]; } void send() {