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

132 lines
4.7 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
// Not Refactored Yet
// model: popup.store.chatsModelInst.communities.activeCommunity.communityMembershipRequests
clip: true
delegate: StatusListItem {
anchors.horizontalCenter: parent.horizontalCenter
// Not Refactored Yet
//property int contactIndex: popup.store.allContacts.getContactIndexByPubkey(model.publicKey)
property string nickname: Utils.getContactDetailsAsJson(model.publicKey).localNickname
// Not Refactored Yet
property string profileImage: ""// contactIndex === -1 ? "" : popup.store.allContacts.rowData(contactIndex, 'thumbnailImage')
property string displayName: Utils.getContactDetailsAsJson(publicKey).displayName
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()
}
]
}