diff --git a/app/components/post_add_channel_member/post_add_channel_member.js b/app/components/post_add_channel_member/post_add_channel_member.js index 1c4b89cbf..3a8dba028 100644 --- a/app/components/post_add_channel_member/post_add_channel_member.js +++ b/app/components/post_add_channel_member/post_add_channel_member.js @@ -30,6 +30,7 @@ export default class PostAddChannelMember extends React.PureComponent { postId: PropTypes.string.isRequired, userIds: PropTypes.array.isRequired, usernames: PropTypes.array.isRequired, + noGroupsUsernames: PropTypes.array, navigator: PropTypes.object.isRequired, onPostPress: PropTypes.func, textStyles: PropTypes.object, @@ -78,7 +79,7 @@ export default class PostAddChannelMember extends React.PureComponent { } } - generateAtMentions(usernames = []) { + generateAtMentions(usernames = [], textStyles) { if (usernames.length === 1) { return ( ); } @@ -134,7 +136,7 @@ export default class PostAddChannelMember extends React.PureComponent { } render() { - const {channelType, baseTextStyle, postId, usernames} = this.props; + const {channelType, baseTextStyle, postId, usernames, noGroupsUsernames} = this.props; if (!postId || !channelType) { return null; @@ -150,43 +152,75 @@ export default class PostAddChannelMember extends React.PureComponent { linkText = 'add them to the channel'; } - let messageId; - let messageText; + let outOfChannelMessageID; + let outOfChannelMessageText; + const outOfChannelAtMentions = this.generateAtMentions(usernames, baseTextStyle); if (usernames.length === 1) { - messageId = t('post_body.check_for_out_of_channel_mentions.message.one'); - messageText = 'was mentioned but is not in the channel. Would you like to '; + outOfChannelMessageID = t('post_body.check_for_out_of_channel_mentions.message.one'); + outOfChannelMessageText = 'was mentioned but is not in the channel. Would you like to '; } else if (usernames.length > 1) { - messageId = t('post_body.check_for_out_of_channel_mentions.message.multiple'); - messageText = 'were mentioned but they are not in the channel. Would you like to '; + outOfChannelMessageID = t('post_body.check_for_out_of_channel_mentions.message.multiple'); + outOfChannelMessageText = 'were mentioned but they are not in the channel. Would you like to '; } - const atMentions = this.generateAtMentions(usernames); + let outOfGroupsMessageID; + let outOfGroupsMessageText; + const outOfGroupsAtMentions = this.generateAtMentions(noGroupsUsernames, baseTextStyle); + if (noGroupsUsernames?.length) { + outOfGroupsMessageID = t('post_body.check_for_out_of_channel_groups_mentions.message'); + outOfGroupsMessageText = 'did not get notified by this mention because they are not in the channel. They are also not a member of the groups linked to this channel.'; + } - return ( - - {atMentions} - {' '} - - + let outOfChannelMessage = null; + if (usernames.length) { + outOfChannelMessage = ( + + {outOfChannelAtMentions} + {' '} + + + + - - + ); + } + + let outOfGroupsMessage = null; + if (noGroupsUsernames?.length) { + outOfGroupsMessage = ( + + {outOfGroupsAtMentions} + {' '} + + + ); + } + + return ( + <> + {outOfChannelMessage} + {outOfGroupsMessage} + ); } } diff --git a/app/components/post_body/post_body.js b/app/components/post_body/post_body.js index 344fdf43e..62d22b763 100644 --- a/app/components/post_body/post_body.js +++ b/app/components/post_body/post_body.js @@ -194,6 +194,16 @@ export default class PostBody extends PureComponent { PostAddChannelMember = require('app/components/post_add_channel_member').default; } + let userIds = postProps.add_channel_member.not_in_channel_user_ids; + let usernames = postProps.add_channel_member.not_in_channel_usernames; + + if (!userIds) { + userIds = postProps.add_channel_member.user_ids; + } + if (!usernames) { + usernames = postProps.add_channel_member.usernames; + } + return ( ); }; diff --git a/assets/base/i18n/en.json b/assets/base/i18n/en.json index 40ea8508f..bd8dae740 100644 --- a/assets/base/i18n/en.json +++ b/assets/base/i18n/en.json @@ -462,6 +462,7 @@ "password_send.link": "If the account exists, a password reset email will be sent to:", "password_send.reset": "Reset my password", "permalink.error.access": "Permalink belongs to a deleted message or to a channel to which you do not have access.", + "post_body.check_for_out_of_channel_groups_mentions.message": "did not get notified by this mention because they are not in the channel. They are also not a member of the groups linked to this channel.", "post_body.check_for_out_of_channel_mentions.link.and": " and ", "post_body.check_for_out_of_channel_mentions.link.private": "add them to this private channel", "post_body.check_for_out_of_channel_mentions.link.public": "add them to the channel", @@ -552,4 +553,4 @@ "user.settings.push_notification.offline": "Offline", "user.settings.push_notification.online": "Online, away or offline", "web.root.signup_info": "All team communication in one place, searchable and accessible anywhere" -} +} \ No newline at end of file