edit method
Implementation
Future<void> edit(Message msg, String content) async {
if (content.isEmpty || content == msg.content) return;
final editedAt = ChatValueTimestamp.now();
final updatedMsg = switch (msg) {
TextMessage() => msg.copyWith(
isEdited: true,
editedAt: editedAt,
text: content,
),
LinkMessage() => msg.copyWith(
isEdited: true,
editedAt: editedAt,
link: content,
),
_ => null,
};
if (updatedMsg == null) return;
put(updatedMsg);
final status = await RoomManager.i.updateMessage(
roomId,
msg.id,
{
MessageKeys.i.isEdited: true,
MessageKeys.i.content: content,
MessageKeys.i.editedAt: editedAt,
},
roomValues: {
if (room.lastMessageId == msg.id)
RoomKeys.i.lastMessage: updatedMsg.lastMessage(),
},
);
if (!status) put(msg);
}