import React, { PureComponent } from 'react'; import { Text, View } from 'react-native'; import { INVITE_ENABLED, getFeatureFlag } from '../../../base/flags'; import { translate } from '../../../base/i18n'; import { Icon, IconAddUser } from '../../../base/icons'; import { getParticipantCountWithFake } from '../../../base/participants'; import { connect } from '../../../base/redux'; import Button from '../../../base/ui/components/native/Button'; import { BUTTON_TYPES } from '../../../base/ui/constants.native'; import { isInBreakoutRoom } from '../../../breakout-rooms/functions'; import { doInvitePeople } from '../../../invite/actions.native'; import styles from './styles'; /** * Props type of the component. */ type Props = { /** * True if currently in a breakout room. */ _isInBreakoutRoom: boolean, /** * True if the invite functions (dial out, invite, share...etc) are disabled. */ _isInviteFunctionsDiabled: boolean, /** * True if it's a lonely meeting (participant count excluding fakes is 1). */ _isLonelyMeeting: boolean, /** * The Redux Dispatch function. */ dispatch: Function, /** * Function to be used to translate i18n labels. */ t: Function }; /** * Implements the UI elements to be displayed in the lonely meeting experience. */ class LonelyMeetingExperience extends PureComponent { /** * Instantiates a new component. * * @inheritdoc */ constructor(props: Props) { super(props); this._onPress = this._onPress.bind(this); } /** * Renders the "add people" icon. * * @returns {ReactElement} */ _renderAddPeopleIcon() { return ( ); } /** * Implements {@code PureComponent#render}. * * @inheritdoc */ render() { const { _isInBreakoutRoom, _isInviteFunctionsDiabled, _isLonelyMeeting, t } = this.props; if (!_isLonelyMeeting) { return null; } return ( { t('lonelyMeetingExperience.youAreAlone') } { !_isInviteFunctionsDiabled && !_isInBreakoutRoom && (