2022-07-25 15:07:19 +00:00
|
|
|
import QtQuick 2.14
|
|
|
|
import QtQuick.Layouts 1.4
|
2021-07-21 09:49:03 +00:00
|
|
|
|
|
|
|
import StatusQ.Controls 0.1
|
|
|
|
import StatusQ.Components 0.1
|
|
|
|
import StatusQ.Popups 0.1
|
|
|
|
|
2021-09-28 15:04:06 +00:00
|
|
|
import utils 1.0
|
2022-07-25 15:07:19 +00:00
|
|
|
import shared.panels 1.0
|
2021-10-01 15:58:36 +00:00
|
|
|
|
|
|
|
import "../../views"
|
|
|
|
import "../../panels/communities"
|
2020-12-11 20:38:10 +00:00
|
|
|
|
2022-07-25 15:07:19 +00:00
|
|
|
StatusStackModal {
|
|
|
|
id: root
|
2020-12-11 20:38:10 +00:00
|
|
|
|
2022-01-10 16:44:54 +00:00
|
|
|
property var rootStore
|
|
|
|
property var contactsStore
|
2021-07-21 09:49:03 +00:00
|
|
|
property var community
|
2022-01-19 20:07:02 +00:00
|
|
|
property var communitySectionModule
|
2020-12-11 20:38:10 +00:00
|
|
|
|
2022-07-25 15:07:19 +00:00
|
|
|
property var pubKeys: ([])
|
|
|
|
property string inviteMessage: ""
|
|
|
|
property string validationError: ""
|
|
|
|
property string successMessage: ""
|
2022-03-23 10:56:25 +00:00
|
|
|
|
2022-07-25 15:07:19 +00:00
|
|
|
signal sendInvites(var pubKeys, string inviteMessage)
|
2021-07-21 09:49:03 +00:00
|
|
|
|
2022-07-25 15:07:19 +00:00
|
|
|
function processInviteResult(error) {
|
|
|
|
if (error) {
|
|
|
|
console.error('Error inviting', error);
|
|
|
|
root.validationError = error;
|
|
|
|
} else {
|
|
|
|
root.validationError = "";
|
|
|
|
root.successMessage = qsTr("Invite successfully sent");
|
|
|
|
}
|
2020-12-11 20:38:10 +00:00
|
|
|
}
|
|
|
|
|
2022-07-25 15:07:19 +00:00
|
|
|
onOpened: {
|
|
|
|
root.pubKeys = [];
|
|
|
|
root.successMessage = "";
|
|
|
|
root.validationError = "";
|
|
|
|
}
|
2022-06-20 13:27:00 +00:00
|
|
|
|
2022-07-25 15:07:19 +00:00
|
|
|
stackTitle: qsTr("Invite Contacts to %1").arg(community.name)
|
|
|
|
width: 640
|
|
|
|
height: 700
|
2022-08-23 14:57:37 +00:00
|
|
|
leftPadding: 0
|
|
|
|
rightPadding: 0
|
2021-03-31 19:14:09 +00:00
|
|
|
|
2022-07-25 15:07:19 +00:00
|
|
|
nextButton: StatusButton {
|
|
|
|
text: qsTr("Next")
|
|
|
|
enabled: root.pubKeys.length
|
|
|
|
onClicked: {
|
|
|
|
root.currentIndex++;
|
2022-03-23 10:56:25 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-07-25 15:07:19 +00:00
|
|
|
finishButton: StatusButton {
|
|
|
|
enabled: root.pubKeys.length > 0
|
|
|
|
text: qsTr("Send Invites")
|
|
|
|
onClicked: {
|
|
|
|
root.sendInvites(root.pubKeys, root.inviteMessage);
|
|
|
|
root.close();
|
|
|
|
}
|
2020-12-11 20:38:10 +00:00
|
|
|
}
|
|
|
|
|
2022-07-25 15:07:19 +00:00
|
|
|
subHeaderItem: StyledText {
|
|
|
|
text: root.validationError || root.successMessage
|
|
|
|
visible: root.validationError !== "" || root.successMessage !== ""
|
|
|
|
font.pixelSize: 13
|
|
|
|
color: !!root.validationError ? Style.current.danger : Style.current.success
|
2022-08-23 14:57:37 +00:00
|
|
|
horizontalAlignment: Text.AlignHCenter
|
|
|
|
height: visible ? contentHeight : 0
|
2022-07-25 15:07:19 +00:00
|
|
|
}
|
2020-12-11 20:38:10 +00:00
|
|
|
|
2022-07-25 15:07:19 +00:00
|
|
|
stackItems: [
|
|
|
|
CommunityProfilePopupInviteFriendsPanel {
|
|
|
|
width: parent.width
|
|
|
|
rootStore: root.rootStore
|
|
|
|
contactsStore: root.contactsStore
|
|
|
|
community: root.community
|
|
|
|
onPubKeysChanged: root.pubKeys = pubKeys
|
|
|
|
},
|
|
|
|
CommunityProfilePopupInviteMessagePanel {
|
|
|
|
width: parent.width
|
|
|
|
contactsStore: root.contactsStore
|
|
|
|
pubKeys: root.pubKeys
|
|
|
|
onInviteMessageChanged: root.inviteMessage = inviteMessage
|
2020-12-11 20:38:10 +00:00
|
|
|
}
|
2021-07-21 09:49:03 +00:00
|
|
|
]
|
2020-12-11 20:38:10 +00:00
|
|
|
}
|
|
|
|
|