status-desktop/ui/app/mainui/activitycenter/views/ActivityNotificationCommunityMembershipRequest.qml
Alex Jbanca 33b8ca84e8 feat: Disable community membership request actions when the request is in action pending state
The actions are disabled by default. The proper visibility can be set when the backend implementation is done.

+ Fix one issue where the button tooltip was triggered when the pending state button is not visible
2023-08-17 21:14:43 +03:00

54 lines
2.2 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"
import "../stores"
ActivityNotificationMessage {
id: root
contactDetails: notification ? Utils.getContactDetailsAsJson(notification.author, false) : null
messageDetails.messageText: qsTr("Wants to join")
messageDetails.sender.profileImage.name: contactDetails ? contactDetails.displayIcon : ""
messageDetails.sender.profileImage.assetSettings.isImage: true
messageDetails.sender.profileImage.pubkey: notification ? notification.author : ""
messageDetails.sender.profileImage.colorId: Utils.colorIdForPubkey(notification ? notification.author : "")
messageDetails.sender.profileImage.colorHash: Utils.getColorHashAsJson(notification ? notification.author : "", contactDetails && contactDetails.ensVerified)
messageBadgeComponent: CommunityBadge {
readonly property var community: notification ?
root.store.getCommunityDetailsAsJson(notification.communityId) :
null
communityName: community ? community.name : ""
communityImage: community ? community.image : ""
communityColor: community ? community.color : "black"
onCommunityNameClicked: {
root.store.setActiveCommunity(notification.communityId)
root.closeActivityCenter()
}
Layout.maximumWidth: 190
}
ctaComponent: MembershipCta {
membershipStatus: notification && notification.membershipStatus ? notification.membershipStatus : ActivityNotification.MembershipStatus.None
onAcceptRequestToJoinCommunity: root.store.acceptRequestToJoinCommunity(notification.id, notification.communityId)
onDeclineRequestToJoinCommunity: root.store.declineRequestToJoinCommunity(notification.id, notification.communityId)
//TODO: Get backend value. If the membersip is in acceptedPending or declinedPending state, another user can't accept or decline the request
//Only the user who requested can cancel the request
//ctaAllowed: true
}
}