2020-12-11 20:29:46 +00:00
|
|
|
import QtQuick 2.13
|
|
|
|
import QtQuick.Controls 2.13
|
|
|
|
import QtQuick.Layouts 1.13
|
|
|
|
|
|
|
|
import "../../../imports"
|
|
|
|
import "../../../shared"
|
|
|
|
import "../../../shared/status"
|
|
|
|
import "./ContactsColumn"
|
2020-12-11 20:38:10 +00:00
|
|
|
import "./CommunityComponents"
|
2020-12-11 20:29:46 +00:00
|
|
|
|
|
|
|
Item {
|
|
|
|
// TODO unhardcode
|
|
|
|
property int chatGroupsListViewCount: channelList.channelListCount
|
|
|
|
|
|
|
|
id: root
|
|
|
|
Layout.fillHeight: true
|
|
|
|
|
|
|
|
Component {
|
|
|
|
id: createChannelPopup
|
|
|
|
CreateChannelPopup {
|
|
|
|
onClosed: {
|
|
|
|
destroy()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Item {
|
|
|
|
id: communityHeader
|
|
|
|
width: parent.width
|
2020-12-15 16:04:19 +00:00
|
|
|
height: communityHeaderButton.height
|
2020-12-11 20:29:46 +00:00
|
|
|
anchors.top: parent.top
|
|
|
|
anchors.topMargin: Style.current.padding
|
|
|
|
|
|
|
|
StatusIconButton {
|
|
|
|
id: backArrow
|
|
|
|
icon.name: "arrow-right"
|
|
|
|
iconRotation: 180
|
|
|
|
iconColor: Style.current.inputColor
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.leftMargin: Style.current.bigPadding
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
onClicked: chatsModel.activeCommunity.active = false
|
|
|
|
}
|
|
|
|
|
2020-12-15 16:04:19 +00:00
|
|
|
CommunityHeaderButton {
|
|
|
|
id: communityHeaderButton
|
2020-12-11 20:29:46 +00:00
|
|
|
anchors.left: backArrow.right
|
2020-12-15 16:04:19 +00:00
|
|
|
anchors.top: parent.top
|
|
|
|
anchors.topMargin: -4
|
2020-12-11 20:29:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
StatusIconButton {
|
|
|
|
id: optionsBtn
|
|
|
|
icon.name: "dots-icon"
|
|
|
|
iconColor: Style.current.inputColor
|
|
|
|
anchors.right: parent.right
|
|
|
|
anchors.rightMargin: Style.current.bigPadding
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
2021-01-06 14:55:33 +00:00
|
|
|
onClicked: optionsMenu.open()
|
2020-12-11 20:29:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
PopupMenu {
|
|
|
|
id: optionsMenu
|
|
|
|
x: optionsBtn.x + optionsBtn.width / 2 - optionsMenu.width / 2
|
|
|
|
y: optionsBtn.height
|
|
|
|
|
|
|
|
Action {
|
|
|
|
enabled: chatsModel.activeCommunity.admin
|
2021-02-18 16:36:05 +00:00
|
|
|
//% "Create channel"
|
|
|
|
text: qsTrId("create-channel")
|
2020-12-11 20:29:46 +00:00
|
|
|
icon.source: "../../img/hash.svg"
|
|
|
|
icon.width: 20
|
|
|
|
icon.height: 20
|
|
|
|
onTriggered: openPopup(createChannelPopup, {communityId: chatsModel.activeCommunity.id})
|
|
|
|
}
|
|
|
|
|
|
|
|
Action {
|
2021-02-18 16:36:05 +00:00
|
|
|
//% "Leave community"
|
|
|
|
text: qsTrId("leave-community")
|
2020-12-11 20:29:46 +00:00
|
|
|
icon.source: "../../img/delete.svg"
|
|
|
|
icon.color: Style.current.red
|
|
|
|
icon.width: 20
|
|
|
|
icon.height: 20
|
|
|
|
onTriggered: chatsModel.leaveCurrentCommunity()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ScrollView {
|
|
|
|
id: chatGroupsContainer
|
|
|
|
anchors.top: communityHeader.bottom
|
|
|
|
anchors.topMargin: Style.current.padding
|
|
|
|
anchors.bottom: parent.bottom
|
|
|
|
anchors.left: parent.left
|
|
|
|
anchors.right: parent.right
|
|
|
|
leftPadding: Style.current.halfPadding
|
|
|
|
rightPadding: Style.current.halfPadding
|
|
|
|
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
|
|
|
contentHeight: channelList.height + emptyViewAndSuggestions.height + 2 * Style.current.padding
|
|
|
|
clip: true
|
|
|
|
|
|
|
|
ChannelList {
|
|
|
|
id: channelList
|
|
|
|
searchStr: ""
|
|
|
|
channelModel: chatsModel.activeCommunity.chats
|
|
|
|
}
|
|
|
|
|
|
|
|
CommunityWelcomeBanner {
|
|
|
|
id: emptyViewAndSuggestions
|
|
|
|
visible: chatsModel.activeCommunity.admin
|
|
|
|
width: parent.width
|
|
|
|
anchors.top: channelList.bottom
|
|
|
|
anchors.topMargin: Style.current.padding
|
|
|
|
}
|
2020-12-15 16:04:19 +00:00
|
|
|
|
|
|
|
CommunityProfilePopup {
|
|
|
|
id: communityProfilePopup
|
|
|
|
}
|
2020-12-11 20:29:46 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*##^##
|
|
|
|
Designer {
|
|
|
|
D{i:0;autoSize:true;formeditorColor:"#ffffff";height:480;width:640}
|
|
|
|
}
|
|
|
|
##^##*/
|