status-desktop/ui/app/mainui/activitycenter/views/ActivityNotificationCommuni...

80 lines
2.9 KiB
QML

import QtQuick 2.14
import QtQuick.Layouts 1.14
import StatusQ.Core 0.1
import StatusQ.Core.Theme 0.1
import StatusQ.Components 0.1
import shared 1.0
import shared.panels 1.0
import utils 1.0
import shared.views.chat 1.0
import "../controls"
import "../panels"
ActivityNotificationBase {
id: root
property var messageContextMenu
signal activityCenterClose()
bodyComponent: MessageView {
readonly property var contactDetails: Utils.getContactDetailsAsJson(notification.author)
rootStore: root.store
messageStore: root.store.messageStore
messageId: notification.id
messageText: qsTr("Wants to join")
messageTimestamp: notification.timestamp
senderId: notification.author
senderIcon: contactDetails.displayIcon
senderDisplayName: contactDetails.displayName
senderOptionalName: contactDetails.localNickname
messageContextMenu: root.messageContextMenu
activityCenterMessage: true
activityCenterMessageRead: false
onImageClicked: Global.openImagePopup(image, root.messageContextMenu)
messageClickHandler: (sender,
point,
isProfileClick,
isSticker = false,
isImage = false,
image = null,
isEmoji = false,
ideEmojiPicker = false,
isReply = false,
isRightClickOnImage = false,
imageSource = "") => {
if (isProfileClick) {
return Global.openProfilePopup(notification.author)
}
root.activityCenterClose()
root.store.activityCenterModuleInst.switchTo(notification.sectionId, notification.chatId, notification.id)
}
CommunityBadge {
readonly property var community: root.store.getCommunityDetailsAsJson(notification.communityId)
anchors.bottom: parent.bottom
anchors.bottomMargin: 6
anchors.left: parent.left
anchors.leftMargin: 160 // TODO: get right text margin
communityName: community.name
communityImage: community.image
communityColor: community.color
onCommunityNameClicked: root.store.setActiveCommunity(notification.communityId)
}
}
ctaComponent: MembershipCta {
pending: notification.membershipStatus === Constants.activityCenterMembershipStatusPending
accepted: notification.membershipStatus === Constants.activityCenterMembershipStatusAccepted
declined: notification.membershipStatus === Constants.activityCenterMembershipStatusDeclined
onAcceptRequestToJoinCommunity: root.store.acceptRequestToJoinCommunity(notification.id, notification.communityId)
onDeclineRequestToJoinCommunity: root.store.declineRequestToJoinCommunity(notification.id, notification.communityId)
}
}