diff --git a/ts/components/conversation/SessionQuotedMessageComposition.tsx b/ts/components/conversation/SessionQuotedMessageComposition.tsx index afdbff84c..a555f5d2f 100644 --- a/ts/components/conversation/SessionQuotedMessageComposition.tsx +++ b/ts/components/conversation/SessionQuotedMessageComposition.tsx @@ -12,6 +12,7 @@ import { Image } from '../../../ts/components/conversation/Image'; import useKey from 'react-use/lib/useKey'; import { getAbsoluteAttachmentPath } from '../../types/MessageAttachment'; import { GoogleChrome } from '../../util'; +import { findAndFormatContact } from '../../models/message'; const QuotedMessageComposition = styled(Flex)` border-top: 1px solid var(--border-color); @@ -47,12 +48,24 @@ const StyledText = styled(Flex)` `; export const SessionQuotedMessageComposition = () => { - const quotedMessageProps = useSelector(getQuotedMessage); - const dispatch = useDispatch(); + const quotedMessageProps = useSelector(getQuotedMessage); const { author, attachments, text: quoteText } = quotedMessageProps || {}; + const removeQuotedMessage = () => { + dispatch(quoteMessage(undefined)); + }; + + useKey('Escape', removeQuotedMessage, undefined, []); + + if (!author || !quotedMessageProps?.id) { + return null; + } + + const contact = findAndFormatContact(author); + const authorName = contact?.profileName || contact?.name || author || window.i18n('unknown'); + const hasAttachments = attachments && attachments.length > 0 && attachments[0]; const firstImageAttachment = hasAttachments && attachments[0].contentType !== AUDIO_MP3 && attachments[0].thumbnail @@ -80,16 +93,6 @@ export const SessionQuotedMessageComposition = () => { ? window.i18n('image') : null; - const removeQuotedMessage = () => { - dispatch(quoteMessage(undefined)); - }; - - useKey('Escape', removeQuotedMessage, undefined, []); - - if (!author || !quotedMessageProps?.id) { - return null; - } - return ( { justifyContent={'center'} alignItems={'flex-start'} > -

{author}

+

{authorName}

{subtitleText && {subtitleText}} diff --git a/ts/components/conversation/message/message-item/notification-bubble/CallNotification.tsx b/ts/components/conversation/message/message-item/notification-bubble/CallNotification.tsx index e1d8f73ec..97f037568 100644 --- a/ts/components/conversation/message/message-item/notification-bubble/CallNotification.tsx +++ b/ts/components/conversation/message/message-item/notification-bubble/CallNotification.tsx @@ -46,7 +46,9 @@ export const CallNotification = (props: PropsForCallNotification) => { (selectedConvoProps?.id && PubKey.shorten(selectedConvoProps?.id)); const styleItem = style[notificationType]; - const notificationText = window.i18n(styleItem.notificationTextKey, [displayName || 'Unknown']); + const notificationText = window.i18n(styleItem.notificationTextKey, [ + displayName || window.i18n('unknown'), + ]); if (!window.i18n(styleItem.notificationTextKey)) { throw new Error(`invalid i18n key ${styleItem.notificationTextKey}`); } diff --git a/ts/components/dialog/UpdateGroupMembersDialog.tsx b/ts/components/dialog/UpdateGroupMembersDialog.tsx index 56985d50d..ce0fc492b 100644 --- a/ts/components/dialog/UpdateGroupMembersDialog.tsx +++ b/ts/components/dialog/UpdateGroupMembersDialog.tsx @@ -164,7 +164,7 @@ async function onSubmit(convoId: string, membersAfterUpdate: Array) { void initiateClosedGroupUpdate( convoId, - convoProps.displayNameInProfile || 'Unknown', + convoProps.displayNameInProfile || window.i18n('unknown'), filteredMembers ); } diff --git a/ts/components/dialog/UpdateGroupNameDialog.tsx b/ts/components/dialog/UpdateGroupNameDialog.tsx index 377bb0713..86e3da014 100644 --- a/ts/components/dialog/UpdateGroupNameDialog.tsx +++ b/ts/components/dialog/UpdateGroupNameDialog.tsx @@ -82,7 +82,7 @@ export class UpdateGroupNameDialog extends React.Component { const okText = window.i18n('ok'); const cancelText = window.i18n('cancel'); const titleText = window.i18n('updateGroupDialogTitle', [ - this.convo.getRealSessionUsername() || 'Unknown', + this.convo.getRealSessionUsername() || window.i18n('unknown'), ]); const errorMsg = this.state.errorMessage; diff --git a/ts/interactions/messageInteractions.ts b/ts/interactions/messageInteractions.ts index 76cfccec9..62a03caf6 100644 --- a/ts/interactions/messageInteractions.ts +++ b/ts/interactions/messageInteractions.ts @@ -112,8 +112,12 @@ const acceptOpenGroupInvitationV2 = (completeUrl: string, roomName?: string) => window.inboxStore?.dispatch( updateConfirmModal({ - title: window.i18n('joinOpenGroupAfterInvitationConfirmationTitle', [roomName || 'Unknown']), - message: window.i18n('joinOpenGroupAfterInvitationConfirmationDesc', [roomName || 'Unknown']), + title: window.i18n('joinOpenGroupAfterInvitationConfirmationTitle', [ + roomName || window.i18n('unknown'), + ]), + message: window.i18n('joinOpenGroupAfterInvitationConfirmationDesc', [ + roomName || window.i18n('unknown'), + ]), onClickOk: async () => { await joinOpenGroupV2WithUIEvents(completeUrl, true, false); }, diff --git a/ts/models/message.ts b/ts/models/message.ts index e7149aaf8..16f94ccc9 100644 --- a/ts/models/message.ts +++ b/ts/models/message.ts @@ -607,7 +607,7 @@ export class MessageModel extends Backbone.Model { } = { sender: author, messageId: id, - authorName: authorName || 'Unknown', + authorName: authorName || window.i18n('unknown'), }; if (referencedMessageNotFound) { @@ -1424,7 +1424,7 @@ export function overrideWithSourceMessage( const sender = msgProps.sender && isEmpty(msgProps.sender) ? msgProps.sender : quote.sender; const contact = findAndFormatContact(sender); - const authorName = contact?.profileName || contact?.name || 'Unknown'; + const authorName = contact?.profileName || contact?.name || window.i18n('unknown'); const attachment = msgProps.attachments && msgProps.attachments[0] ? msgProps.attachments[0] : quote.attachment; diff --git a/ts/session/group/open-group.ts b/ts/session/group/open-group.ts index fe20d215d..52fab172c 100644 --- a/ts/session/group/open-group.ts +++ b/ts/session/group/open-group.ts @@ -69,7 +69,7 @@ export async function initiateOpenGroupUpdate( }); const avatarImageId = fileId; await convo.setSessionProfile({ - displayName: groupName || convo.get('displayNameInProfile') || 'Unknown', + displayName: groupName || convo.get('displayNameInProfile') || window.i18n('unknown'), avatarPath: upgraded.path, avatarImageId, diff --git a/ts/session/utils/calling/CallManager.ts b/ts/session/utils/calling/CallManager.ts index ac44d4415..d46cd2e15 100644 --- a/ts/session/utils/calling/CallManager.ts +++ b/ts/session/utils/calling/CallManager.ts @@ -1138,7 +1138,7 @@ export async function handleMissedCall( const displayname = incomingCallConversation?.getNickname() || incomingCallConversation?.getRealSessionUsername() || - 'Unknown'; + window.i18n('unknown'); switch (reason) { case 'permissions': diff --git a/ts/state/selectors/conversations.ts b/ts/state/selectors/conversations.ts index f4b733d10..3aa52a556 100644 --- a/ts/state/selectors/conversations.ts +++ b/ts/state/selectors/conversations.ts @@ -883,7 +883,7 @@ export const getMessagePropsByMessageId = createSelector( sender, authorAvatarPath: foundSenderConversation.avatarPath || null, isKickedFromGroup: foundMessageConversation.isKickedFromGroup || false, - authorProfileName: authorProfileName || 'Unknown', + authorProfileName: authorProfileName || window.i18n('unknown'), authorName, }, };