+ {/* Header */}
+
+
+
+
{channelName}
+ {spaceName &&
{spaceName}
}
+
+ {participantIds.length} connected
+
+
+ {/* Participant grid */}
+
+
+ {participantIds.map(userId => {
+ const info = getParticipantInfo(userId);
+ const state = voiceUserStates.get(userId);
+ const isMe = userId === authUser?.id;
+
+ return (
+
+
+
+ {state?.isMuted && (
+
+ )}
+
+
+ {info.name}{isMe ? ' (You)' : ''}
+
+
+ );
+ })}
+
+
+ {participantIds.length === 0 && (
+
+ No one else is here yet
+
+ )}
+
+
+ {/* Control bar */}
+
+ {/* Mute */}
+
+
+ {/* Deafen */}
+
+
+ {/* Camera */}
+
+
+ {/* Screen share */}
+
+
+ {/* Disconnect */}
+
+
+
+ );
+}