|
@@ -103,6 +103,11 @@ type Props = {
|
103
|
103
|
*/
|
104
|
104
|
_feedbackConfigured: boolean,
|
105
|
105
|
|
|
106
|
+ /**
|
|
107
|
+ * Whether or not the file recording feature is enabled for use.
|
|
108
|
+ */
|
|
109
|
+ _fileRecordingsEnabled: boolean,
|
|
110
|
+
|
106
|
111
|
/**
|
107
|
112
|
* The current file recording session, if any.
|
108
|
113
|
*/
|
|
@@ -124,6 +129,11 @@ type Props = {
|
124
|
129
|
*/
|
125
|
130
|
_isGuest: boolean,
|
126
|
131
|
|
|
132
|
+ /**
|
|
133
|
+ * Whether or not the live streaming feature is enabled for use.
|
|
134
|
+ */
|
|
135
|
+ _liveStreamingEnabled: boolean,
|
|
136
|
+
|
127
|
137
|
/**
|
128
|
138
|
* The current live streaming session, if any.
|
129
|
139
|
*/
|
|
@@ -144,11 +154,6 @@ type Props = {
|
144
|
154
|
*/
|
145
|
155
|
_raisedHand: boolean,
|
146
|
156
|
|
147
|
|
- /**
|
148
|
|
- * Whether or not the recording feature is enabled for use.
|
149
|
|
- */
|
150
|
|
- _recordingEnabled: boolean,
|
151
|
|
-
|
152
|
157
|
/**
|
153
|
158
|
* Whether or not the local participant is screensharing.
|
154
|
159
|
*/
|
|
@@ -959,10 +964,11 @@ class Toolbox extends Component<Props> {
|
959
|
964
|
_editingDocument,
|
960
|
965
|
_etherpadInitialized,
|
961
|
966
|
_feedbackConfigured,
|
|
967
|
+ _fileRecordingsEnabled,
|
962
|
968
|
_fullScreen,
|
963
|
969
|
_isGuest,
|
|
970
|
+ _liveStreamingEnabled,
|
964
|
971
|
_liveStreamingSession,
|
965
|
|
- _recordingEnabled,
|
966
|
972
|
_sharingVideo,
|
967
|
973
|
t
|
968
|
974
|
} = this.props;
|
|
@@ -988,13 +994,13 @@ class Toolbox extends Component<Props> {
|
988
|
994
|
text = { _fullScreen
|
989
|
995
|
? t('toolbar.exitFullScreen')
|
990
|
996
|
: t('toolbar.enterFullScreen') } />,
|
991
|
|
- _recordingEnabled
|
|
997
|
+ _liveStreamingEnabled
|
992
|
998
|
&& this._shouldShowButton('livestreaming')
|
993
|
999
|
&& <OverflowMenuLiveStreamingItem
|
994
|
1000
|
key = 'livestreaming'
|
995
|
1001
|
onClick = { this._onToolbarToggleLiveStreaming }
|
996
|
1002
|
session = { _liveStreamingSession } />,
|
997
|
|
- _recordingEnabled
|
|
1003
|
+ _fileRecordingsEnabled
|
998
|
1004
|
&& this._shouldShowButton('recording')
|
999
|
1005
|
&& this._renderRecordingButton(),
|
1000
|
1006
|
this._shouldShowButton('sharedvideo')
|
|
@@ -1100,8 +1106,9 @@ function _mapStateToProps(state) {
|
1100
|
1106
|
const {
|
1101
|
1107
|
callStatsID,
|
1102
|
1108
|
disableDesktopSharing,
|
1103
|
|
- enableRecording,
|
1104
|
|
- iAmRecorder
|
|
1109
|
+ fileRecordingsEnabled,
|
|
1110
|
+ iAmRecorder,
|
|
1111
|
+ liveStreamingEnabled
|
1105
|
1112
|
} = state['features/base/config'];
|
1106
|
1113
|
const sharedVideoStatus = state['features/shared-video'].status;
|
1107
|
1114
|
const { current } = state['features/side-panel'];
|
|
@@ -1130,15 +1137,16 @@ function _mapStateToProps(state) {
|
1130
|
1137
|
_hideInviteButton:
|
1131
|
1138
|
iAmRecorder || (!addPeopleEnabled && !dialOutEnabled),
|
1132
|
1139
|
_isGuest: state['features/base/jwt'].isGuest,
|
|
1140
|
+ _fileRecordingsEnabled: isModerator && fileRecordingsEnabled,
|
1133
|
1141
|
_fileRecordingSession:
|
1134
|
1142
|
getActiveSession(state, JitsiRecordingConstants.mode.FILE),
|
1135
|
1143
|
_fullScreen: fullScreen,
|
|
1144
|
+ _liveStreamingEnabled: isModerator && liveStreamingEnabled,
|
1136
|
1145
|
_liveStreamingSession:
|
1137
|
1146
|
getActiveSession(state, JitsiRecordingConstants.mode.STREAM),
|
1138
|
1147
|
_localParticipantID: localParticipant.id,
|
1139
|
1148
|
_overflowMenuVisible: overflowMenuVisible,
|
1140
|
1149
|
_raisedHand: localParticipant.raisedHand,
|
1141
|
|
- _recordingEnabled: isModerator && enableRecording,
|
1142
|
1150
|
_screensharing: localVideo && localVideo.videoType === 'desktop',
|
1143
|
1151
|
_sharingVideo: sharedVideoStatus === 'playing'
|
1144
|
1152
|
|| sharedVideoStatus === 'start'
|