import React from 'react'; import MeetingParticipantItem from './MeetingParticipantItem'; interface IProps { /** * The translated ask unmute text for the quick action buttons. */ askUnmuteText?: string; /** * Whether or not the local participant is in a breakout room. */ isInBreakoutRoom: boolean; /** * Callback for the mouse leaving this item. */ lowerMenu: Function; /** * The translated text for the mute participant button. */ muteParticipantButtonText?: string; /** * Callback used to open an actions drawer for a participant. */ openDrawerForParticipant: Function; /** * True if an overflow drawer should be displayed. */ overflowDrawer?: boolean; /** * The aria-label for the ellipsis action. */ participantActionEllipsisLabel: string; /** * The meeting participants. */ participantIds: Array; /** * The if of the participant for which the context menu should be open. */ raiseContextId?: string; /** * Current search string. */ searchString?: string; /** * Callback for the activation of this item's context menu. */ toggleMenu: Function; /** * The translated "you" text. */ youText: string; } /** * Component used to display a list of meeting participants. * * @returns {ReactNode} */ function MeetingParticipantItems({ isInBreakoutRoom, lowerMenu, toggleMenu, participantIds, openDrawerForParticipant, overflowDrawer, raiseContextId, participantActionEllipsisLabel, searchString, youText }: IProps) { const renderParticipant = (id: string) => ( ); return (<> {participantIds.map(renderParticipant)} ); } // Memoize the component in order to avoid rerender on drawer open/close. export default React.memo(MeetingParticipantItems);