diff --git a/webapp/channels/src/packages/mattermost-redux/src/actions/channels.ts b/webapp/channels/src/packages/mattermost-redux/src/actions/channels.ts index d2d3cdf1d1..5f788e5c67 100644 --- a/webapp/channels/src/packages/mattermost-redux/src/actions/channels.ts +++ b/webapp/channels/src/packages/mattermost-redux/src/actions/channels.ts @@ -1049,20 +1049,23 @@ export function addChannelMember(channelId: string, userId: string, postRootId = Client4.trackEvent('action', 'action_channels_add_member', {channel_id: channelId}); - dispatch(batchActions([ - { - type: UserTypes.RECEIVED_PROFILE_IN_CHANNEL, - data: {id: channelId, user_id: userId}, - }, - { - type: ChannelTypes.RECEIVED_CHANNEL_MEMBER, - data: member, - }, - { - type: ChannelTypes.ADD_CHANNEL_MEMBER_SUCCESS, - id: channelId, - }, - ], 'ADD_CHANNEL_MEMBER.BATCH')); + const membersInChannel = getState().entities.channels.membersInChannel[channelId]; + if (!(membersInChannel && userId in membersInChannel)) { + dispatch(batchActions([ + { + type: UserTypes.RECEIVED_PROFILE_IN_CHANNEL, + data: {id: channelId, user_id: userId}, + }, + { + type: ChannelTypes.RECEIVED_CHANNEL_MEMBER, + data: member, + }, + { + type: ChannelTypes.ADD_CHANNEL_MEMBER_SUCCESS, + id: channelId, + }, + ], 'ADD_CHANNEL_MEMBER.BATCH')); + } return {data: member}; };