feat: private message interface config flag
This commit is contained in:
parent
50f4796144
commit
53f01a39c9
|
@ -22,6 +22,7 @@ export default [
|
||||||
'DEFAULT_REMOTE_DISPLAY_NAME',
|
'DEFAULT_REMOTE_DISPLAY_NAME',
|
||||||
'DISABLE_DOMINANT_SPEAKER_INDICATOR',
|
'DISABLE_DOMINANT_SPEAKER_INDICATOR',
|
||||||
'DISABLE_FOCUS_INDICATOR',
|
'DISABLE_FOCUS_INDICATOR',
|
||||||
|
'DISABLE_PRIVATE_MESSAGES',
|
||||||
'DISABLE_RINGING',
|
'DISABLE_RINGING',
|
||||||
'DISABLE_TRANSCRIPTION_SUBTITLES',
|
'DISABLE_TRANSCRIPTION_SUBTITLES',
|
||||||
'DISABLE_VIDEO_BACKGROUND',
|
'DISABLE_VIDEO_BACKGROUND',
|
||||||
|
|
|
@ -5,10 +5,25 @@ import React, { Component } from 'react';
|
||||||
import { translate } from '../../../base/i18n';
|
import { translate } from '../../../base/i18n';
|
||||||
import { IconMessage } from '../../../base/icons';
|
import { IconMessage } from '../../../base/icons';
|
||||||
import { connect } from '../../../base/redux';
|
import { connect } from '../../../base/redux';
|
||||||
import { _mapDispatchToProps, _mapStateToProps, type Props } from '../../../chat/components/PrivateMessageButton';
|
import {
|
||||||
|
_mapDispatchToProps,
|
||||||
|
_mapStateToProps as _abstractMapStateToProps,
|
||||||
|
type Props as AbstractProps
|
||||||
|
} from '../../../chat/components/PrivateMessageButton';
|
||||||
|
import { isButtonEnabled } from '../../../toolbox';
|
||||||
|
|
||||||
import RemoteVideoMenuButton from './RemoteVideoMenuButton';
|
import RemoteVideoMenuButton from './RemoteVideoMenuButton';
|
||||||
|
|
||||||
|
declare var interfaceConfig: Object;
|
||||||
|
|
||||||
|
type Props = AbstractProps & {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* True if the private chat functionality is disabled, hence the button is not visible.
|
||||||
|
*/
|
||||||
|
_hidden: boolean
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A custom implementation of the PrivateMessageButton specialized for
|
* A custom implementation of the PrivateMessageButton specialized for
|
||||||
* the web version of the remote video menu. When the web platform starts to use
|
* the web version of the remote video menu. When the web platform starts to use
|
||||||
|
@ -34,7 +49,11 @@ class PrivateMessageMenuButton extends Component<Props> {
|
||||||
* @returns {ReactElement}
|
* @returns {ReactElement}
|
||||||
*/
|
*/
|
||||||
render() {
|
render() {
|
||||||
const { participantID, t } = this.props;
|
const { participantID, t, _hidden } = this.props;
|
||||||
|
|
||||||
|
if (_hidden) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RemoteVideoMenuButton
|
<RemoteVideoMenuButton
|
||||||
|
@ -59,4 +78,19 @@ class PrivateMessageMenuButton extends Component<Props> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maps part of the Redux store to the props of this component.
|
||||||
|
*
|
||||||
|
* @param {Object} state - The Redux state.
|
||||||
|
* @param {Props} ownProps - The own props of the component.
|
||||||
|
* @returns {Props}
|
||||||
|
*/
|
||||||
|
function _mapStateToProps(state: Object, ownProps: Props): $Shape<Props> {
|
||||||
|
return {
|
||||||
|
..._abstractMapStateToProps(state, ownProps),
|
||||||
|
_hidden: typeof interfaceConfig !== 'undefined'
|
||||||
|
&& (interfaceConfig.DISABLE_PRIVATE_MESSAGES || !isButtonEnabled('chat'))
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export default translate(connect(_mapStateToProps, _mapDispatchToProps)(PrivateMessageMenuButton));
|
export default translate(connect(_mapStateToProps, _mapDispatchToProps)(PrivateMessageMenuButton));
|
||||||
|
|
Loading…
Reference in New Issue