add edits

This commit is contained in:
Henry Hiles 2025-11-23 16:56:42 -05:00
commit 6523420120
No known key found for this signature in database
3 changed files with 47 additions and 15 deletions

View file

@ -19,17 +19,28 @@ class RoomChatController extends AsyncNotifier<ChatController> {
if (event.roomId != room.id) return;
final message = await event.toMessage();
if (message != null) {
await insertMessage(message);
if (event.relationshipType == RelationshipTypes.edit) {
final controller = await future;
final oldMessage = controller.messages.firstWhereOrNull(
(element) => element.id == event.relationshipEventId,
);
if (oldMessage == null) return;
await updateMessage(oldMessage, message);
} else {
await insertMessage(message);
}
}
}).cancel,
);
return InMemoryChatController(
messages: (await Future.wait(
response.chunk.map(
(event) => Event.fromMatrixEvent(event, room).toMessage(),
),
)).nonNulls.toList().reversed.toList(),
messages: {
for (var msg in (await Future.wait(
response.chunk.map(
(event) => Event.fromMatrixEvent(event, room).toMessage(),
),
)).nonNulls.toList().reversed.toList())
msg.id: msg,
}.values.toList(),
);
}