Pārlūkot izejas kodu

fix: chat error message

master
Bettenbuk Zoltan 6 gadus atpakaļ
vecāks
revīzija
6e10ca5dd2

+ 0
- 29
conference.js Parādīt failu

104
     trackRemoved
104
     trackRemoved
105
 } from './react/features/base/tracks';
105
 } from './react/features/base/tracks';
106
 import { getJitsiMeetGlobalNS } from './react/features/base/util';
106
 import { getJitsiMeetGlobalNS } from './react/features/base/util';
107
-import { addMessage } from './react/features/chat';
108
 import { showDesktopPicker } from './react/features/desktop-picker';
107
 import { showDesktopPicker } from './react/features/desktop-picker';
109
 import { appendSuffix } from './react/features/display-name';
108
 import { appendSuffix } from './react/features/display-name';
110
 import {
109
 import {
114
 import { mediaPermissionPromptVisibilityChanged } from './react/features/overlay';
113
 import { mediaPermissionPromptVisibilityChanged } from './react/features/overlay';
115
 import { suspendDetected } from './react/features/power-monitor';
114
 import { suspendDetected } from './react/features/power-monitor';
116
 import { setSharedVideoStatus } from './react/features/shared-video';
115
 import { setSharedVideoStatus } from './react/features/shared-video';
117
-import { isButtonEnabled } from './react/features/toolbox';
118
 import { endpointMessageReceived } from './react/features/subtitles';
116
 import { endpointMessageReceived } from './react/features/subtitles';
119
 
117
 
120
 const logger = require('jitsi-meet-logger').getLogger(__filename);
118
 const logger = require('jitsi-meet-logger').getLogger(__filename);
244
             this._handleConferenceJoined.bind(this));
242
             this._handleConferenceJoined.bind(this));
245
         room.on(JitsiConferenceEvents.CONFERENCE_FAILED,
243
         room.on(JitsiConferenceEvents.CONFERENCE_FAILED,
246
             this._onConferenceFailed.bind(this));
244
             this._onConferenceFailed.bind(this));
247
-        room.on(JitsiConferenceEvents.CONFERENCE_ERROR,
248
-            this._onConferenceError.bind(this));
249
     }
245
     }
250
 
246
 
251
     /**
247
     /**
348
         }
344
         }
349
     }
345
     }
350
 
346
 
351
-    /**
352
-     *
353
-     */
354
-    _onConferenceError(err, ...params) {
355
-        logger.error('CONFERENCE Error:', err, params);
356
-        switch (err) {
357
-        case JitsiConferenceErrors.CHAT_ERROR:
358
-            logger.error('Chat error.', err);
359
-            if (isButtonEnabled('chat') && !interfaceConfig.filmStripOnly) {
360
-                const [ code, msg ] = params;
361
-
362
-                APP.store.dispatch(addMessage({
363
-                    hasRead: true,
364
-                    error: code,
365
-                    message: msg,
366
-                    messageType: 'error',
367
-                    timestamp: Date.now()
368
-                }));
369
-            }
370
-            break;
371
-        default:
372
-            logger.error('Unknown error.', err);
373
-        }
374
-    }
375
-
376
     /**
347
     /**
377
      *
348
      *
378
      */
349
      */

+ 1
- 1
lang/main.json Parādīt failu

46
         "today": "Today"
46
         "today": "Today"
47
     },
47
     },
48
     "chat": {
48
     "chat": {
49
-        "error": "Error: your message \"{{originalText}}\" was not sent. Reason: {{error}}",
49
+        "error": "Error: your message was not sent. Reason: {{error}}",
50
         "messagebox": "Type a message",
50
         "messagebox": "Type a message",
51
         "messageTo": "Private message to {{recipient}}",
51
         "messageTo": "Private message to {{recipient}}",
52
         "nickname": {
52
         "nickname": {

+ 2
- 2
package-lock.json Parādīt failu

11681
       }
11681
       }
11682
     },
11682
     },
11683
     "lib-jitsi-meet": {
11683
     "lib-jitsi-meet": {
11684
-      "version": "github:jitsi/lib-jitsi-meet#16e08408aa3fa8303e236b9ffdb0dfce65e79bb7",
11685
-      "from": "github:jitsi/lib-jitsi-meet#16e08408aa3fa8303e236b9ffdb0dfce65e79bb7",
11684
+      "version": "github:jitsi/lib-jitsi-meet#f9808adb8eb523bae3318f9f8ef49b544651485f",
11685
+      "from": "github:jitsi/lib-jitsi-meet#f9808adb8eb523bae3318f9f8ef49b544651485f",
11686
       "requires": {
11686
       "requires": {
11687
         "@jitsi/sdp-interop": "0.1.14",
11687
         "@jitsi/sdp-interop": "0.1.14",
11688
         "@jitsi/sdp-simulcast": "0.2.2",
11688
         "@jitsi/sdp-simulcast": "0.2.2",

+ 1
- 1
package.json Parādīt failu

56
     "js-utils": "github:jitsi/js-utils#192b1c996e8c05530eb1f19e82a31069c3021e31",
56
     "js-utils": "github:jitsi/js-utils#192b1c996e8c05530eb1f19e82a31069c3021e31",
57
     "jsrsasign": "8.0.12",
57
     "jsrsasign": "8.0.12",
58
     "jwt-decode": "2.2.0",
58
     "jwt-decode": "2.2.0",
59
-    "lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#16e08408aa3fa8303e236b9ffdb0dfce65e79bb7",
59
+    "lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#f9808adb8eb523bae3318f9f8ef49b544651485f",
60
     "libflacjs": "github:mmig/libflac.js#93d37e7f811f01cf7d8b6a603e38bd3c3810907d",
60
     "libflacjs": "github:mmig/libflac.js#93d37e7f811f01cf7d8b6a603e38bd3c3810907d",
61
     "lodash": "4.17.13",
61
     "lodash": "4.17.13",
62
     "moment": "2.19.4",
62
     "moment": "2.19.4",

+ 5
- 0
react/features/base/conference/actions.js Parādīt failu

77
  * @returns {void}
77
  * @returns {void}
78
  */
78
  */
79
 function _addConferenceListeners(conference, dispatch) {
79
 function _addConferenceListeners(conference, dispatch) {
80
+    // A simple logger for conference errors received through
81
+    // the listener. These errors are not handled now, but logged.
82
+    conference.on(JitsiConferenceEvents.CONFERENCE_ERROR,
83
+        error => logger.error('Conference error.', error));
84
+
80
     // Dispatches into features/base/conference follow:
85
     // Dispatches into features/base/conference follow:
81
 
86
 
82
     conference.on(
87
     conference.on(

+ 15
- 0
react/features/chat/components/AbstractChatMessage.js Parādīt failu

57
             .format(TIMESTAMP_FORMAT);
57
             .format(TIMESTAMP_FORMAT);
58
     }
58
     }
59
 
59
 
60
+    /**
61
+     * Generates the message text to be redered in the component.
62
+     *
63
+     * @returns {string}
64
+     */
65
+    _getMessageText() {
66
+        const { message } = this.props;
67
+
68
+        return message.messageType === 'error'
69
+            ? this.props.t('chat.error', {
70
+                error: message.message
71
+            })
72
+            : message.message;
73
+    }
74
+
60
     /**
75
     /**
61
      * Returns the message that is displayed as a notice for private messages.
76
      * Returns the message that is displayed as a notice for private messages.
62
      *
77
      *

+ 3
- 8
react/features/chat/components/native/ChatMessage.js Parādīt failu

47
             textWrapperStyle.push(styles.systemTextWrapper);
47
             textWrapperStyle.push(styles.systemTextWrapper);
48
         }
48
         }
49
 
49
 
50
-        const messageText = message.messageType === 'error'
51
-            ? this.props.t('chat.error', {
52
-                error: message.error,
53
-                originalText: message.message
54
-            })
55
-            : message.message;
56
-
57
         return (
50
         return (
58
             <View style = { styles.messageWrapper } >
51
             <View style = { styles.messageWrapper } >
59
                 { this._renderAvatar() }
52
                 { this._renderAvatar() }
65
                                     && this._renderDisplayName()
58
                                     && this._renderDisplayName()
66
                             }
59
                             }
67
                             <Linkify linkStyle = { styles.chatLink }>
60
                             <Linkify linkStyle = { styles.chatLink }>
68
-                                { replaceNonUnicodeEmojis(messageText) }
61
+                                { replaceNonUnicodeEmojis(this._getMessageText()) }
69
                             </Linkify>
62
                             </Linkify>
70
                             {
63
                             {
71
                                 message.privateMessage
64
                                 message.privateMessage
87
 
80
 
88
     _getFormattedTimestamp: () => string;
81
     _getFormattedTimestamp: () => string;
89
 
82
 
83
+    _getMessageText: () => string;
84
+
90
     _getPrivateNoticeMessage: () => string;
85
     _getPrivateNoticeMessage: () => string;
91
 
86
 
92
     /**
87
     /**

+ 3
- 8
react/features/chat/components/web/ChatMessage.js Parādīt failu

24
      */
24
      */
25
     render() {
25
     render() {
26
         const { message } = this.props;
26
         const { message } = this.props;
27
-        const messageToDisplay = message.messageType === 'error'
28
-            ? this.props.t('chat.error', {
29
-                error: message.error,
30
-                originalText: message.message
31
-            })
32
-            : message.message;
33
-
34
         const processedMessage = [];
27
         const processedMessage = [];
35
 
28
 
36
         // content is an array of text and emoji components
29
         // content is an array of text and emoji components
37
-        const content = toArray(messageToDisplay, { className: 'smiley' });
30
+        const content = toArray(this._getMessageText(), { className: 'smiley' });
38
 
31
 
39
         content.forEach(i => {
32
         content.forEach(i => {
40
             if (typeof i === 'string') {
33
             if (typeof i === 'string') {
67
 
60
 
68
     _getFormattedTimestamp: () => string;
61
     _getFormattedTimestamp: () => string;
69
 
62
 
63
+    _getMessageText: () => string;
64
+
70
     _getPrivateNoticeMessage: () => string;
65
     _getPrivateNoticeMessage: () => string;
71
 
66
 
72
     /**
67
     /**

+ 30
- 11
react/features/chat/middleware.js Parādīt failu

6
     getCurrentConference
6
     getCurrentConference
7
 } from '../base/conference';
7
 } from '../base/conference';
8
 import { openDialog } from '../base/dialog';
8
 import { openDialog } from '../base/dialog';
9
-import { JitsiConferenceEvents } from '../base/lib-jitsi-meet';
9
+import {
10
+    JitsiConferenceErrors,
11
+    JitsiConferenceEvents
12
+} from '../base/lib-jitsi-meet';
10
 import {
13
 import {
11
     getLocalParticipant,
14
     getLocalParticipant,
12
     getParticipantById,
15
     getParticipantById,
139
  * @private
142
  * @private
140
  * @returns {void}
143
  * @returns {void}
141
  */
144
  */
142
-function _addChatMsgListener(conference, { dispatch, getState }) {
145
+function _addChatMsgListener(conference, store) {
143
     if ((typeof interfaceConfig === 'object' && interfaceConfig.filmStripOnly)
146
     if ((typeof interfaceConfig === 'object' && interfaceConfig.filmStripOnly)
144
         || (typeof APP !== 'undefined' && !isButtonEnabled('chat'))
147
         || (typeof APP !== 'undefined' && !isButtonEnabled('chat'))
145
-        || getState()['features/base/config'].iAmRecorder) {
148
+        || store.getState()['features/base/config'].iAmRecorder) {
146
         // We don't register anything on web if we're in filmStripOnly mode, or
149
         // We don't register anything on web if we're in filmStripOnly mode, or
147
         // the chat button is not enabled in interfaceConfig.
150
         // the chat button is not enabled in interfaceConfig.
148
         // or we are in iAmRecorder mode
151
         // or we are in iAmRecorder mode
152
     conference.on(
155
     conference.on(
153
         JitsiConferenceEvents.MESSAGE_RECEIVED,
156
         JitsiConferenceEvents.MESSAGE_RECEIVED,
154
         (id, message, timestamp, nick) => {
157
         (id, message, timestamp, nick) => {
155
-            _handleReceivedMessage({
156
-                dispatch,
157
-                getState
158
-            }, {
158
+            _handleReceivedMessage(store, {
159
                 id,
159
                 id,
160
                 message,
160
                 message,
161
                 nick,
161
                 nick,
168
     conference.on(
168
     conference.on(
169
         JitsiConferenceEvents.PRIVATE_MESSAGE_RECEIVED,
169
         JitsiConferenceEvents.PRIVATE_MESSAGE_RECEIVED,
170
         (id, message, timestamp) => {
170
         (id, message, timestamp) => {
171
-            _handleReceivedMessage({
172
-                dispatch,
173
-                getState
174
-            }, {
171
+            _handleReceivedMessage(store, {
175
                 id,
172
                 id,
176
                 message,
173
                 message,
177
                 privateMessage: true,
174
                 privateMessage: true,
180
             });
177
             });
181
         }
178
         }
182
     );
179
     );
180
+
181
+    conference.on(
182
+        JitsiConferenceEvents.CONFERENCE_ERROR, (errorType, error) => {
183
+            errorType === JitsiConferenceErrors.CHAT_ERROR && _handleChatError(store, error);
184
+        });
185
+}
186
+
187
+/**
188
+ * Handles a chat error received from the xmpp server.
189
+ *
190
+ * @param {Store} store - The Redux store.
191
+ * @param  {string} error - The error message.
192
+ * @returns {void}
193
+ */
194
+function _handleChatError({ dispatch }, error) {
195
+    dispatch(addMessage({
196
+        hasRead: true,
197
+        messageType: 'error',
198
+        message: error,
199
+        privateMessage: false,
200
+        timestamp: Date.now()
201
+    }));
183
 }
202
 }
184
 
203
 
185
 /**
204
 /**

Notiek ielāde…
Atcelt
Saglabāt