/* @flow */ import React, { Component } from 'react'; import { translate } from '../../base/i18n'; import TimeElapsed from './TimeElapsed'; /** * The type of the React {@code Component} props of {@link SpeakerStatsItem}. */ type Props = { /** * The name of the participant. */ displayName: string, /** * The total milliseconds the participant has been dominant speaker. */ dominantSpeakerTime: number, /** * True if the participant is no longer in the meeting. */ hasLeft: boolean, /** * True if the participant is currently the dominant speaker. */ isDominantSpeaker: boolean, /** * Invoked to obtain translated strings. */ t: Function }; /** * React component for display an individual user's speaker stats. * * @extends Component */ class SpeakerStatsItem extends Component { /** * Implements React's {@link Component#render()}. * * @inheritdoc * @returns {ReactElement} */ render() { const hasLeftClass = this.props.hasLeft ? 'status-user-left' : ''; const rowDisplayClass = `speaker-stats-item ${hasLeftClass}`; const dotClass = this.props.isDominantSpeaker ? 'status-active' : 'status-inactive'; const speakerStatusClass = `speaker-stats-item__status-dot ${dotClass}`; return (
{ this.props.displayName }
); } } export default translate(SpeakerStatsItem);