remove method

Future<void> remove(
  1. Message msg
)

Implementation

Future<void> remove(Message msg) async {
  if (!msg.shouldRemove && msg.isRemovedByMe) return;
  pop(msg);

  final allRemoved = room.participants.every(
    (uid) => uid == me || msg.removes[uid] == true,
  );

  final status = allRemoved
      ? await RoomManager.i.deleteMessage(msg)
      : await RoomManager.i.updateMessage(msg.roomId, msg.id, {
          '${MessageKeys.i.removes}.$me': true,
        });

  if (!status) put(msg);
}