2020-12-15 12:04:19 -04:00
|
|
|
import QtQuick 2.12
|
2021-03-16 14:07:09 +01:00
|
|
|
import QtQuick.Controls 2.12
|
2021-07-15 13:15:56 +02:00
|
|
|
|
|
|
|
import StatusQ.Controls 0.1
|
|
|
|
import StatusQ.Popups 0.1
|
|
|
|
|
2021-09-28 18:04:06 +03:00
|
|
|
|
|
|
|
import utils 1.0
|
2020-12-15 12:04:19 -04:00
|
|
|
|
2021-10-01 18:58:36 +03:00
|
|
|
import "../../panels/communities"
|
|
|
|
|
2021-07-15 13:15:56 +02:00
|
|
|
StatusModal {
|
2021-10-22 23:49:47 +03:00
|
|
|
id: root
|
2021-07-16 14:36:27 +02:00
|
|
|
|
2021-10-22 23:49:47 +03:00
|
|
|
property var store
|
2021-07-16 14:36:27 +02:00
|
|
|
property var community
|
2022-01-19 15:07:02 -05:00
|
|
|
property var contactsStore
|
|
|
|
property bool hasAddedContacts
|
2022-01-18 15:54:14 -05:00
|
|
|
property var communitySectionModule
|
2021-07-16 14:36:27 +02:00
|
|
|
|
2021-03-16 14:07:09 +01:00
|
|
|
onClosed: {
|
2021-09-07 15:37:00 +02:00
|
|
|
while (contentItem.depth > 1) {
|
|
|
|
contentItem.pop()
|
2021-03-16 14:07:09 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-09-07 15:37:00 +02:00
|
|
|
header.title: contentItem.currentItem.headerTitle
|
|
|
|
header.subTitle: contentItem.currentItem.headerSubtitle || ""
|
2022-08-11 14:55:08 +03:00
|
|
|
header.asset.name: contentItem.currentItem.headerImageSource || ""
|
|
|
|
header.asset.isImage: !!contentItem.currentItem.headerImageSource
|
|
|
|
header.asset.isLetterIdenticon: contentItem.currentItem.headerTitle === root.community.name && !contentItem.currentItem.headerImageSource
|
|
|
|
header.asset.bgColor: root.community.color
|
2021-02-12 11:32:04 -05:00
|
|
|
|
2021-09-02 17:40:10 +03:00
|
|
|
contentItem: StackView {
|
2021-03-16 14:07:09 +01:00
|
|
|
id: stack
|
|
|
|
initialItem: profileOverview
|
2021-10-22 23:49:47 +03:00
|
|
|
width: root.width
|
2021-09-07 15:37:00 +02:00
|
|
|
implicitHeight: currentItem.implicitHeight || currentItem.height
|
2020-12-16 14:56:48 -04:00
|
|
|
|
2021-03-16 14:07:09 +01:00
|
|
|
pushEnter: Transition { enabled: false }
|
|
|
|
pushExit: Transition { enabled: false }
|
|
|
|
popEnter: Transition { enabled: false }
|
|
|
|
popExit: Transition { enabled: false }
|
2020-12-18 15:15:00 -05:00
|
|
|
|
2021-03-16 14:07:09 +01:00
|
|
|
Component {
|
|
|
|
id: profileOverview
|
2021-10-01 18:58:36 +03:00
|
|
|
CommunityProfilePopupOverviewPanel {
|
2021-07-15 13:15:56 +02:00
|
|
|
width: stack.width
|
|
|
|
|
2021-10-22 23:49:47 +03:00
|
|
|
headerTitle: root.community.name
|
2021-07-15 13:15:56 +02:00
|
|
|
headerSubtitle: {
|
2021-10-22 23:49:47 +03:00
|
|
|
switch(root.community.access) {
|
2022-04-04 13:26:30 +02:00
|
|
|
case Constants.communityChatPublicAccess: return qsTr("Public community");
|
|
|
|
case Constants.communityChatInvitationOnlyAccess: return qsTr("Invitation only community");
|
|
|
|
case Constants.communityChatOnRequestAccess: return qsTr("On request community");
|
|
|
|
default: return qsTr("Unknown community");
|
2020-12-17 09:24:33 -04:00
|
|
|
}
|
|
|
|
}
|
2022-01-05 10:11:26 -05:00
|
|
|
headerImageSource: root.community.image
|
2021-10-22 23:49:47 +03:00
|
|
|
community: root.community
|
2021-07-15 13:15:56 +02:00
|
|
|
|
2021-12-07 22:33:12 +02:00
|
|
|
onTransferOwnershipButtonClicked: Global.openPopup(transferOwnershiproot, {
|
2022-01-19 15:07:02 -05:00
|
|
|
privateKey: communitySectionModule.exportCommunity(root.community.id),
|
2021-11-11 11:45:59 +01:00
|
|
|
store: root.store
|
|
|
|
})
|
2021-08-02 12:39:51 +03:00
|
|
|
onLeaveButtonClicked: {
|
2022-01-18 15:54:14 -05:00
|
|
|
communitySectionModule.leaveCommunity();
|
2021-10-22 23:49:47 +03:00
|
|
|
root.close();
|
2021-08-02 12:39:51 +03:00
|
|
|
}
|
2021-10-21 03:41:54 +03:00
|
|
|
onCopyToClipboard: {
|
2021-10-22 23:49:47 +03:00
|
|
|
root.store.copyToClipboard(link);
|
2021-10-21 03:41:54 +03:00
|
|
|
}
|
2021-07-16 14:36:27 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Component {
|
2021-10-22 23:49:47 +03:00
|
|
|
id: transferOwnershiproot
|
2021-07-16 14:36:27 +02:00
|
|
|
TransferOwnershipPopup {
|
|
|
|
anchors.centerIn: parent
|
|
|
|
onClosed: {
|
|
|
|
destroy()
|
|
|
|
}
|
2021-07-15 13:15:56 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Component {
|
|
|
|
id: inviteFriendsView
|
2021-10-01 18:58:36 +03:00
|
|
|
CommunityProfilePopupInviteFriendsPanel {
|
2021-07-15 13:15:56 +02:00
|
|
|
width: stack.width
|
2022-04-04 13:26:30 +02:00
|
|
|
headerTitle: qsTr("Invite friends")
|
2021-10-22 23:49:47 +03:00
|
|
|
community: root.community
|
2022-01-19 15:07:02 -05:00
|
|
|
contactsStore: root.contactsStore
|
2022-04-19 13:49:34 +03:00
|
|
|
rootStore: root.store
|
2020-12-16 14:56:48 -04:00
|
|
|
}
|
|
|
|
}
|
2021-03-16 14:07:09 +01:00
|
|
|
}
|
2020-12-18 15:15:00 -05:00
|
|
|
|
2021-07-15 13:15:56 +02:00
|
|
|
leftButtons: [
|
2022-08-02 16:48:07 +03:00
|
|
|
StatusBackButton {
|
2021-07-16 09:53:41 +02:00
|
|
|
id: backButton
|
2021-09-07 15:37:00 +02:00
|
|
|
visible: contentItem.depth > 1
|
2021-07-15 13:15:56 +02:00
|
|
|
height: !visible ? 0 : implicitHeight
|
2021-03-16 14:07:09 +01:00
|
|
|
onClicked: {
|
2021-09-07 15:37:00 +02:00
|
|
|
contentItem.pop()
|
2020-12-16 14:56:48 -04:00
|
|
|
}
|
|
|
|
}
|
2021-07-15 13:15:56 +02:00
|
|
|
]
|
2021-04-20 14:31:36 +02:00
|
|
|
|
2021-07-15 13:15:56 +02:00
|
|
|
rightButtons: [
|
2021-04-20 14:31:36 +02:00
|
|
|
StatusButton {
|
2022-04-04 13:26:30 +02:00
|
|
|
text: qsTr("Invite")
|
2021-10-22 23:49:47 +03:00
|
|
|
visible: root.contentItem.depth > 2
|
2021-07-15 13:15:56 +02:00
|
|
|
height: !visible ? 0 : implicitHeight
|
2022-07-25 18:07:19 +03:00
|
|
|
enabled: root.contentItem.currentItem !== undefined && root.contentItem.currentItem.pubKeys.length > 0
|
2021-04-20 14:31:36 +02:00
|
|
|
onClicked: {
|
2022-07-25 18:07:19 +03:00
|
|
|
root.contentItem.currentItem.sendInvites(root.contentItem.currentItem.pubKeys, "") // NOTE: empty message
|
2021-10-22 23:49:47 +03:00
|
|
|
root.contentItem.pop()
|
2021-04-20 14:31:36 +02:00
|
|
|
}
|
|
|
|
}
|
2021-07-15 13:15:56 +02:00
|
|
|
]
|
2020-12-15 12:04:19 -04:00
|
|
|
}
|
|
|
|
|