mediasfu-reactnative-expo
Version:
mediasfu-reactnative-expo – Expo-managed React Native WebRTC SDK for video conferencing, webinars, live streaming, broadcast, screen sharing, whiteboard, chat, recording, live subtitles, translation, and AI agent rooms on iOS, Android, and web. Prebuilt r
27 lines • 1.29 kB
JavaScript
export const generateRandomRequestList = ({ participants, hostName, coHostName, numberOfRequests, }) => {
const filteredParticipants = participants.filter((participant) => participant.name !== hostName && participant.name !== coHostName);
const requestIcons = ['fa-video', 'fa-desktop', 'fa-microphone'];
for (let i = requestIcons.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[requestIcons[i], requestIcons[j]] = [requestIcons[j], requestIcons[i]];
}
return filteredParticipants.flatMap((participant) => {
const uniqueIcons = new Set();
const requests = [];
for (let i = 0; i < numberOfRequests; i++) {
let randomIcon;
do {
randomIcon = requestIcons[Math.floor(Math.random() * requestIcons.length)];
} while (uniqueIcons.has(randomIcon));
uniqueIcons.add(randomIcon);
requests.push({
id: participant.id || '',
name: participant.name.toLowerCase().replace(/\s/g, '_'),
icon: randomIcon,
username: participant.name.toLowerCase().replace(/\s/g, '_'),
});
}
return requests;
});
};
//# sourceMappingURL=generateRandomRequestList.js.map