From d249d4d1b0aa98de3cb29a6b572465d415b356d3 Mon Sep 17 00:00:00 2001 From: Ben Cooke Date: Thu, 11 Jul 2024 16:52:44 -0400 Subject: [PATCH] [MM-58778] Fixing white screen for GM conversion (#27385) * fixing white screen for GM conversion --------- Co-authored-by: Mattermost Build --- .../gm_conversion_message.tsx | 19 ++++++++++++++++--- webapp/channels/src/i18n/en.json | 1 + 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/webapp/channels/src/components/post_view/gm_conversion_message/gm_conversion_message.tsx b/webapp/channels/src/components/post_view/gm_conversion_message/gm_conversion_message.tsx index 2bbb50d6e0..bbadeeac02 100644 --- a/webapp/channels/src/components/post_view/gm_conversion_message/gm_conversion_message.tsx +++ b/webapp/channels/src/components/post_view/gm_conversion_message/gm_conversion_message.tsx @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import React, {useEffect, useRef} from 'react'; +import React, {useEffect, useMemo, useRef} from 'react'; import {FormattedMessage, useIntl} from 'react-intl'; import {useDispatch, useSelector} from 'react-redux'; @@ -36,7 +36,20 @@ function GMConversionMessage(props: Props): JSX.Element { ), ); - const convertedByUserUsername = userProfiles.find((user) => user.id === convertedByUserId)!.username; + const convertedByUsername = useMemo(() => { + const convertedByUser = userProfiles.find((user) => user.id === convertedByUserId); + + if (!convertedByUser) { + return ( + + ); + } + return renderUsername(convertedByUser.username); + }, [convertedByUserId, userProfiles]); + const gmMembersUsernames = userProfiles.map((user) => renderUsername(user.username)); if (!convertedByUserId || !gmMembersDuringConversionIDs || gmMembersDuringConversionIDs.length === 0) { @@ -50,7 +63,7 @@ function GMConversionMessage(props: Props): JSX.Element { id='api.channel.group_message_converted_to.private_channel' defaultMessage='{convertedBy} created this channel from a group message with {gmMembers}.' values={{ - convertedBy: renderUsername(convertedByUserUsername), + convertedBy: convertedByUsername, gmMembers: intl.formatList(gmMembersUsernames), }} /> diff --git a/webapp/channels/src/i18n/en.json b/webapp/channels/src/i18n/en.json index 3993ab45fb..d0c58952be 100644 --- a/webapp/channels/src/i18n/en.json +++ b/webapp/channels/src/i18n/en.json @@ -2817,6 +2817,7 @@ "api.channel.add_member.added": "{addedUsername} added to the channel by {username}.", "api.channel.delete_channel.archived": "{username} archived the channel.", "api.channel.group_message_converted_to.private_channel": "{convertedBy} created this channel from a group message with {gmMembers}.", + "api.channel.group_message_converted_to.someone": "Someone", "api.channel.guest_join_channel.post_and_forget": "{username} joined the channel as a guest.", "api.channel.join_channel.post_and_forget": "{username} joined the channel.", "api.channel.leave.left": "{username} left the channel.",