status-desktop/ui/app/AppLayouts/Chat/popups/community/MembershipRequestsPopup.qml

129 lines
4.5 KiB
QML

import QtQuick 2.12
import QtQuick.Controls 2.3
import StatusQ.Core 0.1
import StatusQ.Core.Theme 0.1
import StatusQ.Controls 0.1
import StatusQ.Components 0.1
import StatusQ.Popups 0.1
import utils 1.0
import shared 1.0
StatusModal {
id: popup
property var store
onOpened: {
contentItem.errorText.text = ""
}
//% "Membership requests"
header.title: qsTrId("membership-requests")
header.subTitle: contentItem.membershipRequestList.count
contentItem: Column {
property alias errorText: errorText
property alias membershipRequestList: membershipRequestList
width: popup.width
StatusBaseText {
id: errorText
visible: !!text
height: visible ? implicitHeight : 0
color: Theme.palette.dangerColor1
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.Wrap
width: parent.width
}
Item {
height: 8
width: parent.width
}
ScrollView {
width: parent.width
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
topPadding: 8
bottomPadding: 8
height: 300
clip: true
ListView {
id: membershipRequestList
anchors.fill: parent
model: popup.store.chatsModelInst.communities.activeCommunity.communityMembershipRequests
clip: true
delegate: StatusListItem {
anchors.horizontalCenter: parent.horizontalCenter
property int contactIndex: popup.store.profileModelInst.contacts.list.getContactIndexByPubkey(model.publicKey)
property string nickname: appMain.getUserNickname(model.publicKey)
property string profileImage: contactIndex === -1 ? "" : popup.store.profileModelInst.contacts.list.rowData(contactIndex, 'thumbnailImage')
property string displayName: Utils.getDisplayName(publicKey, contactIndex)
image.isIdenticon: !profileImage && model.identicon
image.source: profileImage || model.identicon
title: displayName
components: [
StatusRoundIcon {
icon.name: "thumbs-up"
icon.color: Theme.palette.white
icon.background.width: 28
icon.background.height: 28
icon.background.color: Theme.palette.successColor1
MouseArea {
id: thumbsUpSensor
hoverEnabled: true
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
errorText.text = ""
const error = popup.store.acceptRequestToJoinCommunity(id);
if (error) {
errorText.text = error
}
}
}
},
StatusRoundIcon {
icon.name: "thumbs-down"
icon.color: Theme.palette.white
icon.background.width: 28
icon.background.height: 28
icon.background.color: Theme.palette.dangerColor1
MouseArea {
id: thumbsDownSensor
hoverEnabled: true
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
errorText.text = ""
const error = popup.store.declineRequestToJoinCommunity(id);
if (error) {
errorText.text = error
}
}
}
}
]
}
}
}
}
leftButtons: [
StatusRoundButton {
icon.name: "arrow-right"
icon.width: 20
icon.height: 16
rotation: 180
onClicked: popup.close()
}
]
}