Participants.fromJson constructor

Participants.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory Participants.fromJson(Map<String, dynamic> json) {
  final remoteParticipants = Map.fromEntries(
    json.entries.expand<MapEntry<ParticipantId, Participant>>((entry) sync* {
      if (entry.key != 'local') {
        final participant = Participant.fromJson(entry.value);
        if (!participant.info.isLocal) {
          yield MapEntry(participant.id, participant);
        }
      }
    }),
  );
  // ignore: avoid_as
  final localParticipant = (json['local'] as Map<String, dynamic>?)?.let(Participant.fromJson);
  if (localParticipant == null) throw ArgumentError('Could not find local participant');
  return Participants(
    local: localParticipant,
    remote: Map.unmodifiable(remoteParticipants),
    all: Map.unmodifiable({localParticipant.id: localParticipant, ...remoteParticipants}),
  );
}