@@ -130,7 +130,10 @@ mixin StateLifecycleMixin on StateNotifier<CallState> {
130130 settings: stage.data.metadata.settings,
131131 egress: stage.data.metadata.details.egress,
132132 ownCapabilities: stage.data.metadata.details.ownCapabilities.toList (),
133- callParticipants: stage.data.metadata.toCallParticipants (state),
133+ callParticipants: stage.data.metadata.toCallParticipants (
134+ state,
135+ fromMembers: true ,
136+ ),
134137 createdAt: stage.data.metadata.details.createdAt,
135138 startsAt: stage.data.metadata.details.startsAt,
136139 endedAt: stage.data.metadata.details.endedAt,
@@ -155,7 +158,10 @@ mixin StateLifecycleMixin on StateNotifier<CallState> {
155158 settings: stage.data.metadata.settings,
156159 egress: stage.data.metadata.details.egress,
157160 ownCapabilities: stage.data.metadata.details.ownCapabilities.toList (),
158- callParticipants: stage.data.metadata.toCallParticipants (state),
161+ callParticipants: stage.data.metadata.toCallParticipants (
162+ state,
163+ fromMembers: true ,
164+ ),
159165 createdAt: stage.data.metadata.details.createdAt,
160166 startsAt: stage.data.metadata.details.startsAt,
161167 endedAt: stage.data.metadata.details.endedAt,
@@ -311,10 +317,21 @@ mixin StateLifecycleMixin on StateNotifier<CallState> {
311317}
312318
313319extension on CallMetadata {
314- List <CallParticipantState > toCallParticipants (CallState state) {
320+ List <CallParticipantState > toCallParticipants (
321+ CallState state, {
322+ bool fromMembers = false ,
323+ }) {
315324 final result = < CallParticipantState > [];
316325
317- for (final participant in session.participants.values) {
326+ final participantsData = fromMembers
327+ ? members.values
328+ .map ((e) => (userId: e.userId, userSessionId: null ))
329+ .toList ()
330+ : session.participants.values
331+ .map ((e) => (userId: e.userId, userSessionId: e.userSessionId))
332+ .toList ();
333+
334+ for (final participant in participantsData) {
318335 final userId = participant.userId;
319336 final member = members[userId];
320337 final user = users[userId];
@@ -338,7 +355,7 @@ extension on CallMetadata {
338355 name: user? .name ?? '' ,
339356 custom: user? .custom ?? {},
340357 image: user? .image ?? '' ,
341- sessionId: participant.userSessionId,
358+ sessionId: participant.userSessionId ?? '' ,
342359 trackIdPrefix: '' ,
343360 isLocal: isLocal,
344361 isOnline: ! isLocal,
0 commit comments