diff options
Diffstat (limited to 'web/react/stores/socket_store.jsx')
-rw-r--r-- | web/react/stores/socket_store.jsx | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/web/react/stores/socket_store.jsx b/web/react/stores/socket_store.jsx index 736b0ca27..9c3270f68 100644 --- a/web/react/stores/socket_store.jsx +++ b/web/react/stores/socket_store.jsx @@ -64,6 +64,9 @@ class SocketStoreClass extends EventEmitter { ErrorStore.storeLastError(null); ErrorStore.emitChange(); } + + AsyncClient.getChannels(); + AsyncClient.getPosts(ChannelStore.getCurrentId()); } this.failCount = 0; @@ -71,6 +74,16 @@ class SocketStoreClass extends EventEmitter { conn.onclose = () => { conn = null; + + if (this.failCount === 0) { + console.log('websocket closed'); //eslint-disable-line no-console + } + + this.failCount = this.failCount + 1; + + ErrorStore.storeLastError({connErrorCount: this.failCount, message: this.translations.socketError}); + ErrorStore.emitChange(); + setTimeout( () => { this.initialize(); @@ -80,14 +93,10 @@ class SocketStoreClass extends EventEmitter { }; conn.onerror = (evt) => { - if (this.failCount === 0) { - console.log('websocket error ' + evt); //eslint-disable-line no-console + if (this.failCount <= 1) { + console.log('websocket error'); //eslint-disable-line no-console + console.log(evt); //eslint-disable-line no-console } - - this.failCount = this.failCount + 1; - - ErrorStore.storeLastError({connErrorCount: this.failCount, message: 'Please check connection, Mattermost unreachable. If issue persists, ask administrator to check WebSocket port.'}); - ErrorStore.emitChange(); }; conn.onmessage = (evt) => { @@ -109,7 +118,8 @@ class SocketStoreClass extends EventEmitter { handleMessage(msg) { switch (msg.action) { case SocketEvents.POSTED: - handleNewPostEvent(msg); + case SocketEvents.EPHEMERAL_MESSAGE: + handleNewPostEvent(msg, this.translations); break; case SocketEvents.POST_EDITED: @@ -151,9 +161,12 @@ class SocketStoreClass extends EventEmitter { this.initialize(); } } + setTranslations(messages) { + this.translations = messages; + } } -function handleNewPostEvent(msg) { +function handleNewPostEvent(msg, translations) { // Store post const post = JSON.parse(msg.props.post); EventHelpers.emitPostRecievedEvent(post); @@ -176,7 +189,6 @@ function handleNewPostEvent(msg) { mentions = JSON.parse(msg.props.mentions); } - const channelType = msgProps.channel_type; const channel = ChannelStore.get(msg.channel_id); const user = UserStore.getCurrentUser(); const member = ChannelStore.getMember(msg.channel_id); @@ -188,18 +200,18 @@ function handleNewPostEvent(msg) { if (notifyLevel === 'none') { return; - } else if (notifyLevel === 'mention' && mentions.indexOf(user.id) === -1 && channelType !== Constants.DM_CHANNEL) { + } else if (notifyLevel === 'mention' && mentions.indexOf(user.id) === -1 && channel.type !== Constants.DM_CHANNEL) { return; } - let username = 'Someone'; + let username = translations.someone; if (post.props.override_username && global.window.mm_config.EnablePostUsernameOverride === 'true') { username = post.props.override_username; } else if (UserStore.hasProfile(msg.user_id)) { username = UserStore.getProfile(msg.user_id).username; } - let title = 'Posted'; + let title = translations.posted; if (channel) { title = channel.display_name; } @@ -211,14 +223,14 @@ function handleNewPostEvent(msg) { if (notifyText.length === 0) { if (msgProps.image) { - Utils.notifyMe(title, username + ' uploaded an image', channel); + Utils.notifyMe(title, username + translations.uploadedImage, channel); } else if (msgProps.otherFile) { - Utils.notifyMe(title, username + ' uploaded a file', channel); + Utils.notifyMe(title, username + translations.uploadedFile, channel); } else { - Utils.notifyMe(title, username + ' did something new', channel); + Utils.notifyMe(title, username + translations.something, channel); } } else { - Utils.notifyMe(title, username + ' wrote: ' + notifyText, channel); + Utils.notifyMe(title, username + translations.wrote + notifyText, channel); } if (!user.notify_props || user.notify_props.desktop_sound === 'true') { Utils.ding(); |