import React, { Fragment } from 'react'; import { defineMessages, injectIntl } from 'react-intl'; import Toggle from '/imports/ui/components/switch/component'; import cx from 'classnames'; import Modal from '/imports/ui/components/modal/simple/component'; import NoteService from '/imports/ui/components/note/service'; import { styles } from './styles'; const intlMessages = defineMessages({ lockViewersTitle: { id: 'app.lock-viewers.title', description: 'lock-viewers title', }, closeLabel: { id: 'app.shortcut-help.closeLabel', description: 'label for close button', }, closeDesc: { id: 'app.shortcut-help.closeDesc', description: 'description for close button', }, lockViewersDescription: { id: 'app.lock-viewers.description', description: 'description for lock viewers feature', }, featuresLable: { id: 'app.lock-viewers.featuresLable', description: 'features label', }, lockStatusLabel: { id: 'app.lock-viewers.lockStatusLabel', description: 'description for close button', }, webcamLabel: { id: 'app.lock-viewers.webcamLabel', description: 'label for webcam toggle', }, otherViewersWebcamLabel: { id: 'app.lock-viewers.otherViewersWebcamLabel', description: 'label for other viewers webcam toggle', }, microphoneLable: { id: 'app.lock-viewers.microphoneLable', description: 'label for microphone toggle', }, publicChatLabel: { id: 'app.lock-viewers.PublicChatLabel', description: 'label for public chat toggle', }, privateChatLable: { id: 'app.lock-viewers.PrivateChatLable', description: 'label for private chat toggle', }, notesLabel: { id: 'app.lock-viewers.notesLabel', description: 'label for shared notes toggle', }, userListLabel: { id: 'app.lock-viewers.userListLabel', description: 'label for user list toggle', }, ariaModalTitle: { id: 'app.lock-viewers.ariaTitle', description: 'aria label for modal title', }, }); const CHAT_ENABLED = Meteor.settings.public.chat.enabled; class LockViewersComponent extends React.PureComponent { render() { const { intl, meeting, closeModal, toggleLockSettings, toggleWebcamsOnlyForModerator, } = this.props; return (

{intl.formatMessage(intlMessages.lockViewersTitle)}

{`${intl.formatMessage(intlMessages.lockViewersDescription)}`}
{intl.formatMessage(intlMessages.featuresLable)}
{intl.formatMessage(intlMessages.lockStatusLabel)}
{ meeting.lockSettingsProps.disableCam = !meeting.lockSettingsProps.disableCam; toggleLockSettings(meeting); }} ariaLabel={intl.formatMessage(intlMessages.webcamLabel)} />
{ meeting.usersProp.webcamsOnlyForModerator = !meeting.usersProp.webcamsOnlyForModerator; toggleWebcamsOnlyForModerator(meeting); }} ariaLabel={intl.formatMessage(intlMessages.otherViewersWebcamLabel)} />
{ meeting.lockSettingsProps.disableMic = !meeting.lockSettingsProps.disableMic; toggleLockSettings(meeting); }} ariaLabel={intl.formatMessage(intlMessages.microphoneLable)} />
{CHAT_ENABLED ? (
{ meeting.lockSettingsProps.disablePublicChat = !meeting.lockSettingsProps.disablePublicChat; toggleLockSettings(meeting); }} ariaLabel={intl.formatMessage(intlMessages.publicChatLabel)} />
{ meeting.lockSettingsProps.disablePrivateChat = !meeting.lockSettingsProps.disablePrivateChat; toggleLockSettings(meeting); }} ariaLabel={intl.formatMessage(intlMessages.privateChatLable)} />
) : null } { NoteService.isEnabled() ? (
{ meeting.lockSettingsProps.disableNote = !meeting.lockSettingsProps.disableNote; toggleLockSettings(meeting); }} ariaLabel={intl.formatMessage(intlMessages.notesLabel)} />
) : null }
{ meeting.lockSettingsProps.hideUserList = !meeting.lockSettingsProps.hideUserList; toggleLockSettings(meeting); }} ariaLabel={intl.formatMessage(intlMessages.userListLabel)} />
); } } export default injectIntl(LockViewersComponent);