import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { connect } from 'react-redux'; import { translate } from '../../base/i18n'; import { getLocalParticipant, PARTICIPANT_ROLE } from '../../base/participants'; import DeviceSelectionButton from './DeviceSelectionButton'; import LanguageSelectDropdown from './LanguageSelectDropdown'; import ModeratorCheckboxes from './ModeratorCheckboxes'; /** * Implements a React {@link Component} which various ways to change application * settings. * * @extends Component */ class SettingsMenu extends Component { /** * {@code SettingsMenu} component's property types. * * @static */ static propTypes = { /** * Whether or not the local user is a moderator. */ _isModerator: PropTypes.bool, /** * Whether or not the button to open device selection should display. */ showDeviceSettings: PropTypes.bool, /** * Whether or not the dropdown to change the current translated language * should display. */ showLanguageSettings: PropTypes.bool, /** * Whether or not moderator-only actions that affect the conference * should display. */ showModeratorSettings: PropTypes.bool, /** * Whether or not menu section should have section titles displayed. */ showTitles: PropTypes.bool, /** * Invoked to obtain translated strings. */ t: PropTypes.func }; /** * Implements React's {@link Component#render()}. * * @inheritdoc * @returns {ReactElement} */ render() { const { _isModerator, showDeviceSettings, showLanguageSettings, showModeratorSettings, showTitles, t } = this.props; return (