delete method

Future<void> delete(
  1. Message msg
)

Implementation

Future<void> delete(Message msg) async {
  if (!msg.isSentByMe || msg.isSending) return;
  put(msg.copyWith(isDeleted: true));

  final isLastMessage = room.lastMessageId == msg.id;
  final status = await RoomManager.i.updateMessage(
    msg.roomId,
    msg.id,
    {MessageKeys.i.isDeleted: true},
    roomValues: {
      if (isLastMessage) ...{
        RoomKeys.i.lastMessage: msg.lastMessage(deleted: true),
        RoomKeys.i.lastMessageSenderId: me,
        RoomKeys.i.lastMessageDeleted: true,
      },
    },
  );
  if (!status) put(msg.copyWith(isDeleted: false));
}