From 0658fbbca155e28157b9e1d08f1ca5d6a1c6bbc5 Mon Sep 17 00:00:00 2001 From: fm2munsh Date: Mon, 20 Apr 2020 13:53:36 -0400 Subject: [PATCH] MM-24356 dispatch getChannelMemberCountsByGroup when user updates timezone --- actions/websocket_actions.jsx | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/actions/websocket_actions.jsx b/actions/websocket_actions.jsx index 0b18d65e08ff..873bbc154e17 100644 --- a/actions/websocket_actions.jsx +++ b/actions/websocket_actions.jsx @@ -22,6 +22,7 @@ import { getChannelStats, viewChannel, markChannelAsRead, + getChannelMemberCountsByGroup, } from 'mattermost-redux/actions/channels'; import {loadRolesIfNeeded} from 'mattermost-redux/actions/roles'; import {setServerVersion} from 'mattermost-redux/actions/general'; @@ -825,20 +826,28 @@ export async function handleUserUpdatedEvent(msg) { const currentUser = getCurrentUser(state); const user = msg.data.user; - if (isGuest(user)) { + const config = getConfig(state); + const isTimezoneEnabled = config.ExperimentalTimezone === 'true'; + const userIsGuest = isGuest(user); + if (userIsGuest || isTimezoneEnabled) { let members = getMembersInCurrentChannel(state); const currentChannelId = getCurrentChannelId(state); - if (members && members[user.id]) { - dispatch(getChannelStats(currentChannelId)); - } else { + if (!members || !members[user.id]) { await dispatch(getChannelMember(currentChannelId, user.id)); members = getMembersInCurrentChannel(getState()); - if (members && members[user.id]) { + } + + if (members && members[user.id]) { + if (isTimezoneEnabled) { + dispatch(getChannelMemberCountsByGroup(currentChannelId, true)); + } + if (isGuest(user)) { dispatch(getChannelStats(currentChannelId)); } } } + if (currentUser.id === user.id) { if (user.update_at > currentUser.update_at) { // Need to request me to make sure we don't override with sanitized fields from the