summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2016-11-01 11:13:33 -0400
committerGitHub <noreply@github.com>2016-11-01 11:13:33 -0400
commit92642bab6852d02e6b58f881ac909788299d0c5c (patch)
tree9c54d4c54bc29a488a34e659a3b75b3d2105ce03
parent9bae1f7e9308be8c7084f73e6b897dde24aad717 (diff)
downloadchat-92642bab6852d02e6b58f881ac909788299d0c5c.tar.gz
chat-92642bab6852d02e6b58f881ac909788299d0c5c.tar.bz2
chat-92642bab6852d02e6b58f881ac909788299d0c5c.zip
Load channel members with channels to make sure we have latest unread counts (#4389)
-rw-r--r--webapp/actions/channel_actions.jsx5
-rw-r--r--webapp/actions/global_actions.jsx7
-rw-r--r--webapp/actions/websocket_actions.jsx8
-rw-r--r--webapp/components/delete_channel_modal.jsx4
-rw-r--r--webapp/components/navbar.jsx3
-rw-r--r--webapp/utils/async_client.jsx18
6 files changed, 25 insertions, 20 deletions
diff --git a/webapp/actions/channel_actions.jsx b/webapp/actions/channel_actions.jsx
index c9c4e6883..5003d6530 100644
--- a/webapp/actions/channel_actions.jsx
+++ b/webapp/actions/channel_actions.jsx
@@ -186,3 +186,8 @@ export function unmarkFavorite(channelId) {
AsyncClient.deletePreferences([pref]);
}
+
+export function loadChannelsForCurrentUser() {
+ AsyncClient.getChannels();
+ AsyncClient.getMyChannelMembers();
+}
diff --git a/webapp/actions/global_actions.jsx b/webapp/actions/global_actions.jsx
index a2c7c341d..6a63b5630 100644
--- a/webapp/actions/global_actions.jsx
+++ b/webapp/actions/global_actions.jsx
@@ -14,6 +14,7 @@ import SearchStore from 'stores/search_store.jsx';
import {handleNewPost, loadPosts, loadPostsBefore, loadPostsAfter} from 'actions/post_actions.jsx';
import {loadProfilesAndTeamMembersForDMSidebar} from 'actions/user_actions.jsx';
+import {loadChannelsForCurrentUser} from 'actions/channel_actions.jsx';
import Constants from 'utils/constants.jsx';
const ActionTypes = Constants.ActionTypes;
@@ -42,7 +43,7 @@ export function emitChannelClickEvent(channel) {
);
}
function switchToChannel(chan) {
- AsyncClient.getChannelStats(chan.id);
+ AsyncClient.getChannelStats(chan.id, true);
AsyncClient.updateLastViewedAt(chan.id);
loadPosts(chan.id);
trackPage();
@@ -140,7 +141,7 @@ export function doFocusPost(channelId, postId, data) {
channelId,
post_list: data
});
- AsyncClient.getChannels(true);
+ loadChannelsForCurrentUser();
AsyncClient.getMoreChannels(true);
AsyncClient.getChannelStats(channelId);
loadPostsBefore(postId, 0, Constants.POST_FOCUS_CONTEXT_RADIUS, true);
@@ -148,7 +149,7 @@ export function doFocusPost(channelId, postId, data) {
}
export function emitPostFocusEvent(postId, onSuccess) {
- AsyncClient.getChannels(true);
+ loadChannelsForCurrentUser();
Client.getPermalinkTmp(
postId,
(data) => {
diff --git a/webapp/actions/websocket_actions.jsx b/webapp/actions/websocket_actions.jsx
index e58bded0d..55df5105f 100644
--- a/webapp/actions/websocket_actions.jsx
+++ b/webapp/actions/websocket_actions.jsx
@@ -20,6 +20,7 @@ import * as AsyncClient from 'utils/async_client.jsx';
import * as GlobalActions from 'actions/global_actions.jsx';
import {handleNewPost, loadPosts} from 'actions/post_actions.jsx';
import {loadProfilesAndTeamMembersForDMSidebar} from 'actions/user_actions.jsx';
+import {loadChannelsForCurrentUser} from 'actions/channel_actions.jsx';
import * as StatusActions from 'actions/status_actions.jsx';
import {Constants, SocketEvents, UserStatuses} from 'utils/constants.jsx';
@@ -75,8 +76,7 @@ function handleFirstConnect() {
function handleReconnect() {
if (Client.teamId) {
- AsyncClient.getChannels();
- AsyncClient.getMyChannelMembers();
+ loadChannelsForCurrentUser();
loadPosts(ChannelStore.getCurrentId());
}
@@ -234,7 +234,7 @@ function handleUserAddedEvent(msg) {
function handleUserRemovedEvent(msg) {
if (UserStore.getCurrentId() === msg.broadcast.user_id) {
- AsyncClient.getChannels();
+ loadChannelsForCurrentUser();
if (msg.data.remover_id !== msg.broadcast.user_id &&
msg.data.channel_id === ChannelStore.getCurrentId() &&
@@ -273,7 +273,7 @@ function handleChannelDeletedEvent(msg) {
const teamUrl = TeamStore.getCurrentTeamRelativeUrl();
browserHistory.push(teamUrl + '/channels/' + Constants.DEFAULT_CHANNEL);
}
- AsyncClient.getChannels();
+ loadChannelsForCurrentUser();
}
function handlePreferenceChangedEvent(msg) {
diff --git a/webapp/components/delete_channel_modal.jsx b/webapp/components/delete_channel_modal.jsx
index 7ec6fde44..315a3cd5e 100644
--- a/webapp/components/delete_channel_modal.jsx
+++ b/webapp/components/delete_channel_modal.jsx
@@ -13,6 +13,8 @@ import {browserHistory} from 'react-router/es6';
import React from 'react';
+import {loadChannelsForCurrentUser} from 'actions/channel_actions.jsx';
+
export default class DeleteChannelModal extends React.Component {
constructor(props) {
super(props);
@@ -29,7 +31,7 @@ export default class DeleteChannelModal extends React.Component {
Client.deleteChannel(
this.props.channel.id,
() => {
- AsyncClient.getChannels(true);
+ loadChannelsForCurrentUser();
},
(err) => {
AsyncClient.dispatchError(err, 'handleDelete');
diff --git a/webapp/components/navbar.jsx b/webapp/components/navbar.jsx
index cf671e64f..4a06d8914 100644
--- a/webapp/components/navbar.jsx
+++ b/webapp/components/navbar.jsx
@@ -115,7 +115,8 @@ export default class Navbar extends React.Component {
Client.leaveChannel(channelId,
() => {
- AsyncClient.getChannels(true);
+ ChannelActions.loadChannelsForCurrentUser();
+
if (this.state.isFavorite) {
ChannelActions.unmarkFavorite(channelId);
}
diff --git a/webapp/utils/async_client.jsx b/webapp/utils/async_client.jsx
index c23270216..1149c565f 100644
--- a/webapp/utils/async_client.jsx
+++ b/webapp/utils/async_client.jsx
@@ -63,7 +63,7 @@ export function checkVersion() {
}
}
-export function getChannels(doVersionCheck) {
+export function getChannels() {
if (isCallInProgress('getChannels')) {
return null;
}
@@ -74,10 +74,6 @@ export function getChannels(doVersionCheck) {
(data) => {
callTracker.getChannels = 0;
- if (doVersionCheck) {
- checkVersion();
- }
-
AppDispatcher.handleServerAction({
type: ActionTypes.RECEIVED_CHANNELS,
channels: data
@@ -114,7 +110,7 @@ export function getChannel(id) {
);
}
-export function getMyChannelMembers(doVersionCheck) {
+export function getMyChannelMembers() {
if (isCallInProgress('getMyChannelMembers')) {
return;
}
@@ -125,10 +121,6 @@ export function getMyChannelMembers(doVersionCheck) {
(data) => {
callTracker.getMyChannelMembers = 0;
- if (doVersionCheck) {
- checkVersion();
- }
-
AppDispatcher.handleServerAction({
type: ActionTypes.RECEIVED_MY_CHANNEL_MEMBERS,
members: data
@@ -242,7 +234,7 @@ export function getMoreChannels(force) {
}
}
-export function getChannelStats(channelId = ChannelStore.getCurrentId()) {
+export function getChannelStats(channelId = ChannelStore.getCurrentId(), doVersionCheck = false) {
if (isCallInProgress('getChannelStats' + channelId) || channelId == null) {
return;
}
@@ -254,6 +246,10 @@ export function getChannelStats(channelId = ChannelStore.getCurrentId()) {
(data) => {
callTracker['getChannelStats' + channelId] = 0;
+ if (doVersionCheck) {
+ checkVersion();
+ }
+
AppDispatcher.handleServerAction({
type: ActionTypes.RECEIVED_CHANNEL_STATS,
stats: data