getReadStatus method

Map<String, Map<String, dynamic>> getReadStatus(
  1. bool includeAll
)

Returns Map with key as userId String and value as Map that conatins two keys: user and last_seen_at. If includeAll is provided as true then current user will be included as well.

{
  'userId1': {
    'user': User(),
    'last_seen_at': 1682131232
  }
}

Implementation

Map<String, Map<String, dynamic>> getReadStatus(bool includeAll) {
  if (isSuper) return {};
  // if (_sdk.state.currentUser == null) return []; //check connection
  return Map.fromIterable(
    members.where((m) {
      if (!includeAll && m.isCurrentUser) return false;
      return true;
    }),
    key: (m) => m.userId,
    value: (m) {
      final readStatus = _sdk.cache.find<ReadStatus>(
        channelKey: channelUrl,
        key: m.userId,
      );
      return {'user': m, 'last_seen_at': readStatus?.timestamp};
    },
  );
}