feat(ActivityCenter): customize badgies for communities and group chats
This commit is contained in:
parent
239563e93b
commit
b923c97773
|
@ -0,0 +1,19 @@
|
|||
import QtQuick 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
|
||||
import utils 1.0
|
||||
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
|
||||
height: visible ? 24 : 0
|
||||
width: childrenRect.width
|
||||
radius: height / 2
|
||||
border.width: 1
|
||||
border.color: Style.current.borderSecondary
|
||||
color: Style.current.transparent
|
||||
}
|
||||
|
|
@ -11,9 +11,11 @@ import StatusQ.Components 0.1
|
|||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Utils 0.1 as StatusQUtils
|
||||
|
||||
Item {
|
||||
Badge {
|
||||
id: channelBadge
|
||||
|
||||
signal channelNameClicked()
|
||||
|
||||
property int realChatType: -1
|
||||
property string name: "channelName"
|
||||
property color textColor
|
||||
|
|
|
@ -9,7 +9,7 @@ import shared 1.0
|
|||
import shared.panels 1.0
|
||||
import shared.status 1.0
|
||||
|
||||
Item {
|
||||
Badge {
|
||||
id: communityBadge
|
||||
|
||||
property string image: ""
|
||||
|
@ -45,7 +45,7 @@ Item {
|
|||
anchors.left: communityIcon.visible ? communityIcon.right : parent.left
|
||||
anchors.leftMargin: 2
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
sourceComponent: communityBadge.useLetterIdenticon ? letterIdenticon :imageIcon
|
||||
sourceComponent: communityBadge.useLetterIdenticon ? letterIdenticon : imageIcon
|
||||
}
|
||||
|
||||
Component {
|
||||
|
|
|
@ -11,7 +11,6 @@ import utils 1.0
|
|||
ActivityNotificationMessage {
|
||||
id: root
|
||||
|
||||
badgeVisible: false
|
||||
// TODO: mark as read ignores notification type
|
||||
// markReadBtnVisible: false
|
||||
}
|
|
@ -9,7 +9,43 @@ import shared 1.0
|
|||
import utils 1.0
|
||||
import shared.panels.chat 1.0
|
||||
|
||||
import "../controls"
|
||||
|
||||
ActivityNotificationMessage {
|
||||
id: root
|
||||
|
||||
signal communityNameClicked()
|
||||
signal channelNameClicked()
|
||||
|
||||
badge: notification.message.communityId ? communityBadgeComponent : notification.chatId ? groupChatBadgeComponent : null
|
||||
|
||||
Component {
|
||||
id: communityBadgeComponent
|
||||
|
||||
CommunityBadge {
|
||||
id: communityBadge
|
||||
|
||||
property string communityId: notification.message.communityId
|
||||
|
||||
textColor: Utils.colorForPubkey(communityId)
|
||||
// TODO: wrong result image: Global.getProfileImage(communityId)
|
||||
// TODO: wrong result iconColor: Utils.colorForPubkey(communityId)
|
||||
communityName: root.store.getSectionNameById(communityId)
|
||||
// TODO: no info about channelName
|
||||
|
||||
onCommunityNameClicked: root.communityNameClicked()
|
||||
onChannelNameClicked: root.channelNameClicked()
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: groupChatBadgeComponent
|
||||
|
||||
ChannelBadge {
|
||||
realChatType: root.realChatType
|
||||
textColor: Utils.colorForPubkey(notification.message.senderId)
|
||||
name: root.name
|
||||
profileImage: Global.getProfileImage(notification.message.chatId)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -9,8 +9,6 @@ import shared 1.0
|
|||
import utils 1.0
|
||||
import shared.views.chat 1.0
|
||||
|
||||
import "../panels"
|
||||
|
||||
ActivityNotificationBase {
|
||||
id: root
|
||||
|
||||
|
@ -21,11 +19,11 @@ ActivityNotificationBase {
|
|||
"" : root.store.activityCenterList.getNotificationData(
|
||||
previousNotificationIndex, "timestamp")
|
||||
|
||||
property alias badgeVisible: badge.visible
|
||||
property alias badge: badgeLoader.sourceComponent
|
||||
|
||||
signal activityCenterClose()
|
||||
|
||||
height: Math.max(60, notificationMessage.height + (badge.visible ? badge.height : 0))
|
||||
height: Math.max(60, notificationMessage.height + (badgeLoader.item ? badgeLoader.height : 0))
|
||||
|
||||
MessageView {
|
||||
id: notificationMessage
|
||||
|
@ -77,24 +75,10 @@ ActivityNotificationBase {
|
|||
prevMsgTimestamp: root.previousNotificationTimestamp
|
||||
}
|
||||
|
||||
ActivityChannelBadgePanel {
|
||||
id: badge
|
||||
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
|
||||
isCommunity: notification.communityId !== ""
|
||||
notificationType: notification.notificationType
|
||||
profileImage: visible ? Global.getProfileImage(isCommunity ? notification.communityId : notification.chatId) : ""
|
||||
repliedMessageContent: notification.repliedMessage.messageText
|
||||
repliedMessageId: notification.message.responseToMessageWithId
|
||||
|
||||
onCommunityNameClicked: {
|
||||
root.store.activityCenterModuleInst.switchTo(notification.sectionId, "", "")
|
||||
root.activityCenterClose()
|
||||
}
|
||||
onChannelNameClicked: {
|
||||
root.store.activityCenterModuleInst.switchTo(notification.sectionId, notification.chatId, "")
|
||||
root.activityCenterClose()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -12,4 +12,6 @@ import shared.panels.chat 1.0
|
|||
ActivityNotificationMessage {
|
||||
id: root
|
||||
|
||||
// repliedMessageContent: notification.repliedMessage.messageText
|
||||
// repliedMessageId: notification.message.responseToMessageWithId
|
||||
}
|
Loading…
Reference in New Issue