115 lines
3.0 KiB
QML
115 lines
3.0 KiB
QML
import QtQuick 2.14
|
|
import QtQuick.Layouts 1.4
|
|
|
|
import StatusQ.Controls 0.1
|
|
import StatusQ.Components 0.1
|
|
import StatusQ.Popups 0.1
|
|
|
|
import utils 1.0
|
|
import shared.panels 1.0
|
|
|
|
import "../../views"
|
|
import "../../panels/communities"
|
|
|
|
StatusStackModal {
|
|
id: root
|
|
|
|
property var rootStore
|
|
property var contactsStore
|
|
property var community
|
|
property var communitySectionModule
|
|
|
|
property var pubKeys: ([])
|
|
property string inviteMessage: ""
|
|
property string validationError: ""
|
|
property string successMessage: ""
|
|
|
|
QtObject {
|
|
id: d
|
|
|
|
function sendInvites(pubKeys, inviteMessage) {
|
|
const error = root.communitySectionModule.inviteUsersToCommunity(JSON.stringify(pubKeys), inviteMessage);
|
|
d.processInviteResult(error);
|
|
}
|
|
|
|
function processInviteResult(error) {
|
|
if (error) {
|
|
console.error('Error inviting', error);
|
|
root.validationError = error;
|
|
} else {
|
|
root.validationError = "";
|
|
root.successMessage = qsTr("Invite successfully sent");
|
|
}
|
|
}
|
|
}
|
|
|
|
onOpened: {
|
|
root.pubKeys = [];
|
|
root.successMessage = "";
|
|
root.validationError = "";
|
|
}
|
|
|
|
stackTitle: qsTr("Invite Contacts to %1").arg(community.name)
|
|
width: 640
|
|
implicitHeight: 700
|
|
|
|
padding: 0
|
|
leftPadding: 0
|
|
rightPadding: 0
|
|
|
|
nextButton: StatusButton {
|
|
objectName: "InviteFriendsToCommunityPopup_NextButton"
|
|
text: qsTr("Next")
|
|
enabled: root.pubKeys.length
|
|
onClicked: {
|
|
root.currentIndex++;
|
|
}
|
|
}
|
|
|
|
finishButton: StatusButton {
|
|
objectName: "InviteFriendsToCommunityPopup_SendButton"
|
|
enabled: root.pubKeys.length > 0
|
|
text: qsTr("Send Invites")
|
|
onClicked: {
|
|
d.sendInvites(root.pubKeys, root.inviteMessage);
|
|
root.close();
|
|
}
|
|
}
|
|
|
|
subHeaderItem: StyledText {
|
|
text: root.validationError || root.successMessage
|
|
visible: root.validationError !== "" || root.successMessage !== ""
|
|
font.pixelSize: 13
|
|
color: !!root.validationError ? Style.current.danger : Style.current.success
|
|
horizontalAlignment: Text.AlignHCenter
|
|
height: visible ? contentHeight : 0
|
|
}
|
|
|
|
stackItems: [
|
|
Item {
|
|
CommunityProfilePopupInviteFriendsPanel {
|
|
anchors.fill: parent
|
|
anchors.topMargin: 16
|
|
anchors.bottomMargin: 16
|
|
|
|
rootStore: root.rootStore
|
|
contactsStore: root.contactsStore
|
|
community: root.community
|
|
onPubKeysChanged: root.pubKeys = pubKeys
|
|
}
|
|
},
|
|
|
|
Item {
|
|
CommunityProfilePopupInviteMessagePanel {
|
|
anchors.fill: parent
|
|
anchors.topMargin: 16
|
|
|
|
contactsStore: root.contactsStore
|
|
pubKeys: root.pubKeys
|
|
onInviteMessageChanged: root.inviteMessage = inviteMessage
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|