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 0.1
|
||||||
import StatusQ.Core.Utils 0.1 as StatusQUtils
|
import StatusQ.Core.Utils 0.1 as StatusQUtils
|
||||||
|
|
||||||
Item {
|
Badge {
|
||||||
id: channelBadge
|
id: channelBadge
|
||||||
|
|
||||||
|
signal channelNameClicked()
|
||||||
|
|
||||||
property int realChatType: -1
|
property int realChatType: -1
|
||||||
property string name: "channelName"
|
property string name: "channelName"
|
||||||
property color textColor
|
property color textColor
|
||||||
|
|
|
@ -9,7 +9,7 @@ import shared 1.0
|
||||||
import shared.panels 1.0
|
import shared.panels 1.0
|
||||||
import shared.status 1.0
|
import shared.status 1.0
|
||||||
|
|
||||||
Item {
|
Badge {
|
||||||
id: communityBadge
|
id: communityBadge
|
||||||
|
|
||||||
property string image: ""
|
property string image: ""
|
||||||
|
@ -45,7 +45,7 @@ Item {
|
||||||
anchors.left: communityIcon.visible ? communityIcon.right : parent.left
|
anchors.left: communityIcon.visible ? communityIcon.right : parent.left
|
||||||
anchors.leftMargin: 2
|
anchors.leftMargin: 2
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
sourceComponent: communityBadge.useLetterIdenticon ? letterIdenticon :imageIcon
|
sourceComponent: communityBadge.useLetterIdenticon ? letterIdenticon : imageIcon
|
||||||
}
|
}
|
||||||
|
|
||||||
Component {
|
Component {
|
||||||
|
|
|
@ -11,7 +11,6 @@ import utils 1.0
|
||||||
ActivityNotificationMessage {
|
ActivityNotificationMessage {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
badgeVisible: false
|
|
||||||
// TODO: mark as read ignores notification type
|
// TODO: mark as read ignores notification type
|
||||||
// markReadBtnVisible: false
|
// markReadBtnVisible: false
|
||||||
}
|
}
|
|
@ -9,7 +9,43 @@ import shared 1.0
|
||||||
import utils 1.0
|
import utils 1.0
|
||||||
import shared.panels.chat 1.0
|
import shared.panels.chat 1.0
|
||||||
|
|
||||||
|
import "../controls"
|
||||||
|
|
||||||
ActivityNotificationMessage {
|
ActivityNotificationMessage {
|
||||||
id: root
|
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 utils 1.0
|
||||||
import shared.views.chat 1.0
|
import shared.views.chat 1.0
|
||||||
|
|
||||||
import "../panels"
|
|
||||||
|
|
||||||
ActivityNotificationBase {
|
ActivityNotificationBase {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
|
@ -21,11 +19,11 @@ ActivityNotificationBase {
|
||||||
"" : root.store.activityCenterList.getNotificationData(
|
"" : root.store.activityCenterList.getNotificationData(
|
||||||
previousNotificationIndex, "timestamp")
|
previousNotificationIndex, "timestamp")
|
||||||
|
|
||||||
property alias badgeVisible: badge.visible
|
property alias badge: badgeLoader.sourceComponent
|
||||||
|
|
||||||
signal activityCenterClose()
|
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 {
|
MessageView {
|
||||||
id: notificationMessage
|
id: notificationMessage
|
||||||
|
@ -77,24 +75,10 @@ ActivityNotificationBase {
|
||||||
prevMsgTimestamp: root.previousNotificationTimestamp
|
prevMsgTimestamp: root.previousNotificationTimestamp
|
||||||
}
|
}
|
||||||
|
|
||||||
ActivityChannelBadgePanel {
|
Loader {
|
||||||
id: badge
|
id: badgeLoader
|
||||||
anchors.top: notificationMessage.bottom
|
anchors.top: notificationMessage.bottom
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: 61 // TODO find a way to align with the text of the message
|
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 {
|
ActivityNotificationMessage {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
|
// repliedMessageContent: notification.repliedMessage.messageText
|
||||||
|
// repliedMessageId: notification.message.responseToMessageWithId
|
||||||
}
|
}
|
Loading…
Reference in New Issue