summaryrefslogtreecommitdiffstats
path: root/webapp/utils
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-11-11 14:55:05 -0500
committerHarrison Healey <harrisonmhealey@gmail.com>2016-11-11 14:55:05 -0500
commitced5f54500b2688a942c5c1afbb4fca3882b4f51 (patch)
treefa4cd9d8cab4e9b93a31102c90f22b98f9c75c8d /webapp/utils
parent29efeff09532397a33bb971e91324f673b296559 (diff)
downloadchat-ced5f54500b2688a942c5c1afbb4fca3882b4f51.tar.gz
chat-ced5f54500b2688a942c5c1afbb4fca3882b4f51.tar.bz2
chat-ced5f54500b2688a942c5c1afbb4fca3882b4f51.zip
Fixing new messages indicator (#4531)
Diffstat (limited to 'webapp/utils')
-rw-r--r--webapp/utils/async_client.jsx82
-rw-r--r--webapp/utils/constants.jsx1
2 files changed, 47 insertions, 36 deletions
diff --git a/webapp/utils/async_client.jsx b/webapp/utils/async_client.jsx
index 1149c565f..efa9eeb2b 100644
--- a/webapp/utils/async_client.jsx
+++ b/webapp/utils/async_client.jsx
@@ -111,26 +111,31 @@ export function getChannel(id) {
}
export function getMyChannelMembers() {
- if (isCallInProgress('getMyChannelMembers')) {
- return;
- }
+ return new Promise((resolve, reject) => {
+ if (isCallInProgress('getMyChannelMembers')) {
+ resolve();
+ return;
+ }
- callTracker.getMyChannelMembers = utils.getTimestamp();
+ callTracker.getMyChannelMembers = utils.getTimestamp();
- Client.getMyChannelMembers(
- (data) => {
- callTracker.getMyChannelMembers = 0;
+ Client.getMyChannelMembers(
+ (data) => {
+ callTracker.getMyChannelMembers = 0;
- AppDispatcher.handleServerAction({
- type: ActionTypes.RECEIVED_MY_CHANNEL_MEMBERS,
- members: data
- });
- },
- (err) => {
- callTracker.getChannelsUnread = 0;
- dispatchError(err, 'getMyChannelMembers');
- }
- );
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECEIVED_MY_CHANNEL_MEMBERS,
+ members: data
+ });
+ resolve();
+ },
+ (err) => {
+ callTracker.getChannelsUnread = 0;
+ dispatchError(err, 'getMyChannelMembers');
+ reject();
+ }
+ );
+ });
}
export function updateLastViewedAt(id, active) {
@@ -263,28 +268,33 @@ export function getChannelStats(channelId = ChannelStore.getCurrentId(), doVersi
}
export function getChannelMember(channelId, userId) {
- if (isCallInProgress(`getChannelMember${channelId}${userId}`)) {
- return;
- }
+ return new Promise((resolve, reject) => {
+ if (isCallInProgress(`getChannelMember${channelId}${userId}`)) {
+ resolve();
+ return;
+ }
- callTracker[`getChannelMember${channelId}${userId}`] = utils.getTimestamp();
+ callTracker[`getChannelMember${channelId}${userId}`] = utils.getTimestamp();
- Client.getChannelMember(
- channelId,
- userId,
- (data) => {
- callTracker[`getChannelMember${channelId}${userId}`] = 0;
+ Client.getChannelMember(
+ channelId,
+ userId,
+ (data) => {
+ callTracker[`getChannelMember${channelId}${userId}`] = 0;
- AppDispatcher.handleServerAction({
- type: ActionTypes.RECEIVED_CHANNEL_MEMBER,
- member: data
- });
- },
- (err) => {
- callTracker[`getChannelMember${channelId}${userId}`] = 0;
- dispatchError(err, 'getChannelMember');
- }
- );
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECEIVED_CHANNEL_MEMBER,
+ member: data
+ });
+ resolve();
+ },
+ (err) => {
+ callTracker[`getChannelMember${channelId}${userId}`] = 0;
+ dispatchError(err, 'getChannelMember');
+ reject();
+ }
+ );
+ });
}
export function getUser(userId) {
diff --git a/webapp/utils/constants.jsx b/webapp/utils/constants.jsx
index 352401142..0da17e4b9 100644
--- a/webapp/utils/constants.jsx
+++ b/webapp/utils/constants.jsx
@@ -70,6 +70,7 @@ export const ActionTypes = keyMirror({
RECEIVED_CHANNELS: null,
RECEIVED_CHANNEL: null,
+ RECEIVED_CHANNEL_MEMBER: null,
RECEIVED_MORE_CHANNELS: null,
RECEIVED_CHANNEL_STATS: null,
RECEIVED_MY_CHANNEL_MEMBERS: null,