diff options
author | Joram Wilander <jwawilander@gmail.com> | 2016-04-27 16:05:39 -0400 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2016-04-27 16:05:39 -0400 |
commit | 7695cbd1b4a62b1cc7c31b16f70309a287296385 (patch) | |
tree | 15a7f35bb56f0c72a9c13192380d795a48339d48 /webapp/action_creators/websocket_actions.jsx | |
parent | ada513a0146cfb570e3614f9b26c0465de3a1d94 (diff) | |
download | chat-7695cbd1b4a62b1cc7c31b16f70309a287296385.tar.gz chat-7695cbd1b4a62b1cc7c31b16f70309a287296385.tar.bz2 chat-7695cbd1b4a62b1cc7c31b16f70309a287296385.zip |
Add websocket event and cache invalidation for deleting channels (#2807)
Diffstat (limited to 'webapp/action_creators/websocket_actions.jsx')
-rw-r--r-- | webapp/action_creators/websocket_actions.jsx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/webapp/action_creators/websocket_actions.jsx b/webapp/action_creators/websocket_actions.jsx index a1368ac99..83a000f6d 100644 --- a/webapp/action_creators/websocket_actions.jsx +++ b/webapp/action_creators/websocket_actions.jsx @@ -18,6 +18,8 @@ import * as GlobalActions from 'action_creators/global_actions.jsx'; import Constants from 'utils/constants.jsx'; const SocketEvents = Constants.SocketEvents; +import {browserHistory} from 'react-router'; + const MAX_WEBSOCKET_FAILS = 7; const WEBSOCKET_RETRY_TIME = 3000; @@ -135,6 +137,10 @@ function handleMessage(msg) { handleChannelViewedEvent(msg); break; + case SocketEvents.CHANNEL_DELETED: + handleChannelDeletedEvent(msg); + break; + case SocketEvents.PREFERENCE_CHANGED: handlePreferenceChangedEvent(msg); break; @@ -234,6 +240,15 @@ function handleChannelViewedEvent(msg) { } } +function handleChannelDeletedEvent(msg) { + if (ChannelStore.getCurrentId() === msg.channel_id) { + const teamUrl = TeamStore.getCurrentTeamRelativeUrl(); + browserHistory.push(teamUrl + '/channels/' + Constants.DEFAULT_CHANNEL); + } else { + AsyncClient.getChannels(); + } +} + function handlePreferenceChangedEvent(msg) { const preference = JSON.parse(msg.props.preference); GlobalActions.emitPreferenceChangedEvent(preference); |