import { Room } from 'matrix-js-sdk'; import React from 'react'; import { Box, Icon, Icons, Text } from 'folds'; import { getMemberDisplayName } from '../../utils/room'; import { getMxIdLocalPart } from '../../utils/matrix'; type MemberSpeakingProps = { room: Room; speakers: Set; }; export function MemberSpeaking({ room, speakers }: MemberSpeakingProps) { const speakingNames = Array.from(speakers).map( (userId) => getMemberDisplayName(room, userId) ?? getMxIdLocalPart(userId) ?? userId ); return ( {speakingNames.length === 1 && ( <> {speakingNames[0]} {' is speaking...'} )} {speakingNames.length === 2 && ( <> {speakingNames[0]} {' and '} {speakingNames[1]} {' are speaking...'} )} {speakingNames.length === 3 && ( <> {speakingNames[0]} {', '} {speakingNames[1]} {' and '} {speakingNames[2]} {' are speaking...'} )} {speakingNames.length > 3 && ( <> {speakingNames[0]} {', '} {speakingNames[1]} {', '} {speakingNames[2]} {' and '} {speakingNames.length - 3} others {' are speaking...'} )} ); }