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
50 lines • 1.76 kB
JavaScript
export const generateRandomMessages = ({ participants, member, coHost = '', host, forChatBroadcast = false, }) => {
const messages = [];
const getRandomReceiver = (sender) => {
const potentialReceivers = participants.filter((participant) => participant.name !== sender);
const randomReceiver = potentialReceivers[Math.floor(Math.random() * potentialReceivers.length)];
return randomReceiver?.name || '';
};
let refNames = [];
if (forChatBroadcast) {
refNames = [member, host];
}
else if (coHost) {
refNames = [
member,
coHost,
host,
...participants.map((participant) => participant.name).filter((name) => !!name),
];
}
else {
refNames = [
member,
host,
...participants.map((participant) => participant.name).filter((name) => !!name),
];
}
refNames = [...new Set(refNames)];
let timeIncrement = 0;
refNames.forEach((sender) => {
messages.push({
sender,
receivers: [getRandomReceiver(sender)],
message: `Direct message from ${sender}`,
timestamp: new Date(Date.now() + timeIncrement).toLocaleTimeString(),
group: false,
});
messages.push({
sender,
receivers: participants
.map((participant) => participant.name)
.filter((name) => !!name),
message: `Group message from ${sender}`,
timestamp: new Date(Date.now() + timeIncrement).toLocaleTimeString(),
group: true,
});
timeIncrement += 15000;
});
return messages;
};
//# sourceMappingURL=generateRandomMessages.js.map