|
@@ -5,6 +5,8 @@ import { connect } from 'react-redux';
|
5
|
5
|
import { translate } from '../../base/i18n';
|
6
|
6
|
import { JitsiRecordingStatus } from '../../base/lib-jitsi-meet';
|
7
|
7
|
|
|
8
|
+import { RECORDING_TYPES } from '../constants';
|
|
9
|
+
|
8
|
10
|
/**
|
9
|
11
|
* Implements a React {@link Component} which displays the current state of
|
10
|
12
|
* conference recording. Currently it uses CSS to display itself automatically
|
|
@@ -43,6 +45,12 @@ class RecordingLabel extends Component {
|
43
|
45
|
*/
|
44
|
46
|
_labelDisplayConfiguration: PropTypes.object,
|
45
|
47
|
|
|
48
|
+ /**
|
|
49
|
+ * Whether the recording feature is live streaming (jibri) or is file
|
|
50
|
+ * recording (jirecon).
|
|
51
|
+ */
|
|
52
|
+ _recordingType: PropTypes.string,
|
|
53
|
+
|
46
|
54
|
/**
|
47
|
55
|
* Invoked to obtain translated string.
|
48
|
56
|
*/
|
|
@@ -93,7 +101,11 @@ class RecordingLabel extends Component {
|
93
|
101
|
* @returns {ReactElement}
|
94
|
102
|
*/
|
95
|
103
|
render() {
|
96
|
|
- const { _isRecording, _labelDisplayConfiguration } = this.props;
|
|
104
|
+ const {
|
|
105
|
+ _isRecording,
|
|
106
|
+ _labelDisplayConfiguration,
|
|
107
|
+ _recordingType
|
|
108
|
+ } = this.props;
|
97
|
109
|
const { centered, key, showSpinner } = _labelDisplayConfiguration || {};
|
98
|
110
|
|
99
|
111
|
const isVisible = Boolean(key);
|
|
@@ -114,7 +126,11 @@ class RecordingLabel extends Component {
|
114
|
126
|
{ _isRecording
|
115
|
127
|
? <div className = 'recording-icon'>
|
116
|
128
|
<div className = 'recording-icon-background' />
|
117
|
|
- <i className = 'icon-rec' />
|
|
129
|
+ <i
|
|
130
|
+ className = {
|
|
131
|
+ _recordingType === RECORDING_TYPES.JIBRI
|
|
132
|
+ ? 'icon-live'
|
|
133
|
+ : 'icon-rec' } />
|
118
|
134
|
</div>
|
119
|
135
|
: <div id = 'recordingLabelText'>
|
120
|
136
|
{ this.props.t(key) }
|
|
@@ -139,20 +155,23 @@ class RecordingLabel extends Component {
|
139
|
155
|
* @returns {{
|
140
|
156
|
* _filmstripVisible: boolean,
|
141
|
157
|
* _isRecording: boolean,
|
142
|
|
- * _labelDisplayConfiguration: Object
|
|
158
|
+ * _labelDisplayConfiguration: Object,
|
|
159
|
+ * _recordingType: string
|
143
|
160
|
* }}
|
144
|
161
|
*/
|
145
|
162
|
function _mapStateToProps(state) {
|
146
|
163
|
const { visible } = state['features/filmstrip'];
|
147
|
164
|
const {
|
148
|
165
|
labelDisplayConfiguration,
|
149
|
|
- recordingState
|
|
166
|
+ recordingState,
|
|
167
|
+ recordingType
|
150
|
168
|
} = state['features/recording'];
|
151
|
169
|
|
152
|
170
|
return {
|
153
|
171
|
_filmstripVisible: visible,
|
154
|
172
|
_isRecording: recordingState === JitsiRecordingStatus.ON,
|
155
|
|
- _labelDisplayConfiguration: labelDisplayConfiguration
|
|
173
|
+ _labelDisplayConfiguration: labelDisplayConfiguration,
|
|
174
|
+ _recordingType: recordingType
|
156
|
175
|
};
|
157
|
176
|
}
|
158
|
177
|
|