mirror of
https://github.com/status-im/status-desktop.git
synced 2025-02-16 16:47:24 +00:00
chore: Optimize StatusMessageReply using more Loaders
also fix the sender display name to respect ensName/nickname Fixes: #9016
This commit is contained in:
parent
a8a3f5285e
commit
8569ea5b41
@ -527,6 +527,8 @@ method updateContactDetails*(self: Module, contactId: string) =
|
||||
item.senderEnsVerified = updatedContact.details.ensVerified
|
||||
if(item.quotedMessageAuthorDetails.details.id == contactId):
|
||||
item.quotedMessageAuthorDetails = updatedContact
|
||||
item.quotedMessageAuthorDisplayName = updatedContact.defaultDisplayName
|
||||
item.quotedMessageAuthorAvatar = updatedContact.icon
|
||||
if(item.messageContainsMentions):
|
||||
let (message, _, err) = self.controller.getMessageDetails(item.id)
|
||||
if(err.len == 0):
|
||||
|
@ -146,8 +146,7 @@ proc initItem*(
|
||||
if result.quotedMessageAuthorAvatar == "":
|
||||
result.quotedMessageAuthorAvatar = quotedMessageDiscordMessage.author.avatarUrl
|
||||
else:
|
||||
result.quotedMessageAuthorDisplayName = if quotedMessageAuthorDetails.details.localNickname != "": quotedMessageAuthorDetails.details.localNickname
|
||||
else: quotedMessageAuthorDetails.details.displayName
|
||||
result.quotedMessageAuthorDisplayName = quotedMessageAuthorDetails.details.userDefaultDisplayName()
|
||||
result.quotedMessageAuthorAvatar = quotedMessageAuthorDetails.details.image.thumbnail
|
||||
|
||||
if contentType == ContentType.DiscordMessage:
|
||||
|
@ -10,8 +10,8 @@ StatusBaseText {
|
||||
property double messageTimestamp
|
||||
|
||||
readonly property int msInADay: 86400000
|
||||
readonly property int lastMessageInDays: Math.floor(previousMessageTimestamp / msInADay)
|
||||
readonly property int currentMessageInDays: Math.floor(messageTimestamp / msInADay)
|
||||
readonly property int lastMessageInDays: previousMessageTimestamp / msInADay
|
||||
readonly property int currentMessageInDays: messageTimestamp / msInADay
|
||||
|
||||
font.pixelSize: 13
|
||||
color: Theme.palette.baseColor1
|
||||
|
@ -67,6 +67,8 @@ Item {
|
||||
anchors.fill: parent
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
StatusSmartIdenticon {
|
||||
id: profileImage
|
||||
Layout.alignment: Qt.AlignTop
|
||||
@ -78,7 +80,7 @@ Item {
|
||||
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||
anchors.fill: parent
|
||||
enabled: root.profileClickable
|
||||
onClicked: replyProfileClicked(this, mouse)
|
||||
onClicked: root.replyProfileClicked(this, mouse)
|
||||
}
|
||||
}
|
||||
StatusBaseText {
|
||||
@ -89,44 +91,50 @@ Item {
|
||||
text: replyDetails.amISender ? qsTr("You") : replyDetails.sender.displayName
|
||||
}
|
||||
}
|
||||
// FIXME OPTIMIZE by using Loaders
|
||||
StatusTextMessage {
|
||||
objectName: "StatusMessage_replyDetails_textMessage"
|
||||
Loader {
|
||||
Layout.fillWidth: true
|
||||
textField.font.pixelSize: Theme.secondaryTextFontSize
|
||||
textField.color: Theme.palette.baseColor1
|
||||
visible: !!replyDetails.messageText && replyDetails.contentType !== StatusMessage.ContentType.Sticker
|
||||
allowShowMore: false
|
||||
stripHtmlTags: true
|
||||
convertToSingleLine: true
|
||||
messageDetails: root.replyDetails
|
||||
}
|
||||
StatusImageMessage {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: imageAlias.paintedHeight
|
||||
imageWidth: 56
|
||||
source: replyDetails.contentType === StatusMessage.ContentType.Image ? replyDetails.messageContent : ""
|
||||
visible: source
|
||||
shapeType: StatusImageMessage.ShapeType.ROUNDED
|
||||
}
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 48
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
visible: replyDetails.contentType === StatusMessage.ContentType.Sticker
|
||||
StatusSticker {
|
||||
asset.width: 48
|
||||
asset.height: 48
|
||||
asset.name: replyDetails.messageContent
|
||||
asset.isImage: true
|
||||
asynchronous: true
|
||||
active: !!replyDetails.messageText && replyDetails.contentType !== StatusMessage.ContentType.Sticker
|
||||
visible: active
|
||||
sourceComponent: StatusTextMessage {
|
||||
objectName: "StatusMessage_replyDetails_textMessage"
|
||||
textField.font.pixelSize: Theme.secondaryTextFontSize
|
||||
textField.color: Theme.palette.baseColor1
|
||||
allowShowMore: false
|
||||
stripHtmlTags: true
|
||||
convertToSingleLine: true
|
||||
messageDetails: root.replyDetails
|
||||
}
|
||||
}
|
||||
Item {
|
||||
Loader {
|
||||
Layout.fillWidth: true
|
||||
asynchronous: true
|
||||
active: replyDetails.contentType === StatusMessage.ContentType.Image
|
||||
visible: active
|
||||
sourceComponent: StatusImageMessage {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: imageAlias.paintedHeight
|
||||
imageWidth: 56
|
||||
source: replyDetails.messageContent
|
||||
shapeType: StatusImageMessage.ShapeType.ROUNDED
|
||||
}
|
||||
}
|
||||
StatusSticker {
|
||||
asynchronous: true
|
||||
active: replyDetails.contentType === StatusMessage.ContentType.Sticker
|
||||
visible: active
|
||||
asset.width: 48
|
||||
asset.height: 48
|
||||
asset.name: replyDetails.messageContent
|
||||
asset.isImage: true
|
||||
}
|
||||
Loader {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 22
|
||||
visible: replyDetails.contentType === StatusMessage.ContentType.Audio
|
||||
StatusAudioMessage {
|
||||
id: audioMessage
|
||||
asynchronous: true
|
||||
active: replyDetails.contentType === StatusMessage.ContentType.Audio
|
||||
visible: active
|
||||
sourceComponent: StatusAudioMessage {
|
||||
anchors.left: parent.left
|
||||
width: 125
|
||||
height: 22
|
||||
|
@ -96,7 +96,7 @@ Item {
|
||||
messageContextMenu.isProfile = true
|
||||
messageContextMenu.myPublicKey = userProfile.pubKey
|
||||
messageContextMenu.selectedUserPublicKey = model.pubKey
|
||||
messageContextMenu.selectedUserDisplayName = nickName || userName
|
||||
messageContextMenu.selectedUserDisplayName = title
|
||||
messageContextMenu.selectedUserIcon = model.icon
|
||||
messageContextMenu.popup(4, 4)
|
||||
} else if (mouse.button === Qt.LeftButton && !!messageContextMenu) {
|
||||
|
@ -89,7 +89,7 @@ Loader {
|
||||
property string prevMessageSenderId: prevMessageAsJsonObj ? prevMessageAsJsonObj.senderId : ""
|
||||
property var prevMessageAsJsonObj
|
||||
property int nextMessageIndex: -1
|
||||
property int nextMessageTimestamp: nextMessageAsJsonObj ? nextMessageAsJsonObj.timestamp : 0
|
||||
property double nextMessageTimestamp: nextMessageAsJsonObj ? nextMessageAsJsonObj.timestamp : 0
|
||||
property var nextMessageAsJsonObj
|
||||
|
||||
property bool editModeOn: false
|
||||
|
Loading…
x
Reference in New Issue
Block a user