seen method

Future<void> seen(
  1. Message msg
)

Implementation

Future<void> seen(Message msg) async {
  if (msg.isSentByMe) return;
  if (msg.isSeenByMe) return;
  put(msg.copyWith(status: MessageStatus.seen));

  final isLastMsg = room.lastMessageId == msg.id;

  final success = await RoomManager.i.updateMessage(
    msg.roomId,
    msg.id,
    {'${MessageKeys.i.statuses}.$me': MessageStatus.seen.name},
    roomValues: {
      if (isLastMsg)
        '${RoomKeys.i.lastMessageStatuses}.$me': MessageStatus.seen.name,
    },
  );
  if (!success) put(msg);
}