diff --git a/ui/app/mainui/activitycenter/controls/Badge.qml b/ui/app/mainui/activitycenter/controls/Badge.qml index ca9dda2a1b..a09fd4a28e 100644 --- a/ui/app/mainui/activitycenter/controls/Badge.qml +++ b/ui/app/mainui/activitycenter/controls/Badge.qml @@ -10,7 +10,7 @@ Rectangle { id: root height: visible ? 24 : 0 - width: childrenRect.width + Style.current.smallPadding * 2 + width: childrenRect.width + Style.current.smallPadding radius: height / 2 border.width: 1 border.color: Style.current.borderSecondary diff --git a/ui/app/mainui/activitycenter/popups/ActivityCenterPopup.qml b/ui/app/mainui/activitycenter/popups/ActivityCenterPopup.qml index 0544de8d4d..c76251b221 100644 --- a/ui/app/mainui/activitycenter/popups/ActivityCenterPopup.qml +++ b/ui/app/mainui/activitycenter/popups/ActivityCenterPopup.qml @@ -157,6 +157,7 @@ Popup { roleValue: Constants.activityCenterNotificationTypeMention ActivityNotificationMention { + width: listView.availableWidth store: root.store notification: model messageContextMenu: root.messageContextMenu @@ -168,6 +169,7 @@ Popup { roleValue: Constants.activityCenterNotificationTypeReply ActivityNotificationReply { + width: listView.availableWidth store: root.store notification: model messageContextMenu: root.messageContextMenu @@ -179,6 +181,7 @@ Popup { roleValue: Constants.activityCenterNotificationTypeContactRequest ActivityNotificationContactRequest { + width: listView.availableWidth store: root.store notification: model messageContextMenu: root.messageContextMenu diff --git a/ui/app/mainui/activitycenter/views/ActivityNotificationBase.qml b/ui/app/mainui/activitycenter/views/ActivityNotificationBase.qml index 1d8dcecd65..2274f03c7f 100644 --- a/ui/app/mainui/activitycenter/views/ActivityNotificationBase.qml +++ b/ui/app/mainui/activitycenter/views/ActivityNotificationBase.qml @@ -14,29 +14,51 @@ Item { property var notification property var store - property alias markReadBtnVisible: markReadBtn.visible + property alias bodyComponent: bodyLoader.sourceComponent + property alias badgeComponent: badgeLoader.sourceComponent + property alias actionComponent: actionLoader.sourceComponent + property alias action: actionLoader - width: listView.availableWidth - height: 50 + height: Math.max(50, bodyLoader.height + (badgeLoader.item ? badgeLoader.height : 0)) - StatusFlatRoundButton { - id: markReadBtn + Loader { + id: bodyLoader + anchors.top: parent.top + anchors.right: actionLoader.left + anchors.left: parent.left + } + + Loader { + id: badgeLoader + anchors.top: bodyLoader.bottom + anchors.left: parent.left + anchors.leftMargin: 61 // TODO find a way to align with the text of the message + } + + Loader { + id: actionLoader anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right anchors.rightMargin: Style.current.padding - icon.source: Style.svg("check-activity") - icon.color: notification.read ? icon.disabledColor : "transparent" - color: "transparent" - tooltip.text: !notification.read ? qsTr("Mark as Read") : qsTr("Mark as Unread") - tooltip.orientation: StatusToolTip.Orientation.Left - tooltip.x: -tooltip.width - Style.current.padding - tooltip.y: 4 - onClicked: { - notification.read ? - root.store.activityCenterModuleInst.markActivityCenterNotificationUnread( - notification.id, notification.message.communityId, notification.message.chatId, notification.notificationType) : - root.store.activityCenterModuleInst.markActivityCenterNotificationRead( - notification.id, notification.message.communityId, notification.chatId, notification.notificationType) + + sourceComponent: StatusFlatRoundButton { + id: markReadBtn + icon.source: Style.svg("check-activity") + icon.color: notification.read ? icon.disabledColor : "transparent" + color: "transparent" + tooltip.text: !notification.read ? qsTr("Mark as Read") : qsTr("Mark as Unread") + tooltip.orientation: StatusToolTip.Orientation.Left + tooltip.x: -tooltip.width - Style.current.padding + tooltip.y: 4 + onClicked: { + notification.read ? + root.store.activityCenterModuleInst.markActivityCenterNotificationUnread( + notification.id, notification.message.communityId, + notification.message.chatId, notification.notificationType) : + root.store.activityCenterModuleInst.markActivityCenterNotificationRead( + notification.id, notification.message.communityId, + notification.chatId, notification.notificationType) + } } } } \ No newline at end of file diff --git a/ui/app/mainui/activitycenter/views/ActivityNotificationContactRequest.qml b/ui/app/mainui/activitycenter/views/ActivityNotificationContactRequest.qml index 6e4ddc779f..6c10fdc107 100644 --- a/ui/app/mainui/activitycenter/views/ActivityNotificationContactRequest.qml +++ b/ui/app/mainui/activitycenter/views/ActivityNotificationContactRequest.qml @@ -12,5 +12,5 @@ ActivityNotificationMessage { id: root // TODO: mark as read ignores notification type - // markReadBtnVisible: false + actionComponent: null } \ No newline at end of file diff --git a/ui/app/mainui/activitycenter/views/ActivityNotificationMention.qml b/ui/app/mainui/activitycenter/views/ActivityNotificationMention.qml index 6ac2458a9e..9be3d1c2c5 100644 --- a/ui/app/mainui/activitycenter/views/ActivityNotificationMention.qml +++ b/ui/app/mainui/activitycenter/views/ActivityNotificationMention.qml @@ -14,7 +14,7 @@ import "../controls" ActivityNotificationMessage { id: root - badge: notification.message.communityId ? communityBadgeComponent : notification.chatId ? groupChatBadgeComponent : null + badgeComponent: notification.message.communityId ? communityBadgeComponent : notification.chatId ? groupChatBadgeComponent : null Component { id: communityBadgeComponent diff --git a/ui/app/mainui/activitycenter/views/ActivityNotificationMessage.qml b/ui/app/mainui/activitycenter/views/ActivityNotificationMessage.qml index 2ac3859993..28a646839e 100644 --- a/ui/app/mainui/activitycenter/views/ActivityNotificationMessage.qml +++ b/ui/app/mainui/activitycenter/views/ActivityNotificationMessage.qml @@ -19,19 +19,9 @@ ActivityNotificationBase { "" : root.store.activityCenterList.getNotificationData( previousNotificationIndex, "timestamp") - property alias badge: badgeLoader.sourceComponent - signal activityCenterClose() - height: Math.max(60, notificationMessage.height + (badgeLoader.item ? badgeLoader.height : 0)) - - MessageView { - id: notificationMessage - anchors.top: parent.top - anchors.left: parent.left - anchors.right: parent.right - z: -1 - + bodyComponent: MessageView { rootStore: root.store messageStore: root.store.messageStore messageContextMenu: root.messageContextMenu @@ -74,11 +64,4 @@ ActivityNotificationBase { prevMessageIndex: root.previousNotificationIndex prevMsgTimestamp: root.previousNotificationTimestamp } - - Loader { - id: badgeLoader - anchors.top: notificationMessage.bottom - anchors.left: parent.left - anchors.leftMargin: 61 // TODO find a way to align with the text of the message - } } \ No newline at end of file diff --git a/ui/imports/shared/views/chat/MessageView.qml b/ui/imports/shared/views/chat/MessageView.qml index 037be70783..6fece5a35e 100644 --- a/ui/imports/shared/views/chat/MessageView.qml +++ b/ui/imports/shared/views/chat/MessageView.qml @@ -212,6 +212,7 @@ Loader { // } // } + height: implicitHeight z: (typeof chatLogView === "undefined") ? 1 : (chatLogView.count - index) sourceComponent: {