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);
}