chore(@desktop/chat): remove unused GroupChatPanel
This commit is contained in:
parent
6760870dc9
commit
740c5c3874
|
@ -1,183 +0,0 @@
|
||||||
import QtQuick 2.13
|
|
||||||
import QtQuick.Layouts 1.13
|
|
||||||
|
|
||||||
import StatusQ.Core 0.1
|
|
||||||
import StatusQ.Components 0.1
|
|
||||||
import StatusQ.Controls 0.1
|
|
||||||
|
|
||||||
import utils 1.0
|
|
||||||
|
|
||||||
|
|
||||||
RowLayout {
|
|
||||||
id: root
|
|
||||||
|
|
||||||
property var sectionModule
|
|
||||||
property var chatContentModule
|
|
||||||
property var rootStore
|
|
||||||
property int maxHeight
|
|
||||||
|
|
||||||
signal panelClosed()
|
|
||||||
|
|
||||||
QtObject {
|
|
||||||
id: d
|
|
||||||
|
|
||||||
property ListModel groupUsersModel: ListModel { }
|
|
||||||
property ListModel contactsModel: ListModel { }
|
|
||||||
property var addedMembersIds: []
|
|
||||||
property var removedMembersIds: []
|
|
||||||
|
|
||||||
function initialize () {
|
|
||||||
groupUsersModel.clear()
|
|
||||||
contactsModel.clear()
|
|
||||||
addedMembersIds = []
|
|
||||||
removedMembersIds = []
|
|
||||||
tagSelector.namesModel.clear()
|
|
||||||
}
|
|
||||||
|
|
||||||
function find(val, array) {
|
|
||||||
for(var i = 0; i < array.length; i++) {
|
|
||||||
if(array[i] === val) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
StatusListView {
|
|
||||||
id: groupUsersModelListView
|
|
||||||
visible: false
|
|
||||||
model: root.chatContentModule.usersModule.model
|
|
||||||
delegate: Item {
|
|
||||||
property string pubKey: model.pubKey
|
|
||||||
property string name: model.displayName
|
|
||||||
property string icon: model.icon
|
|
||||||
property bool isAdmin: model.isAdmin
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
StatusListView {
|
|
||||||
id: contactsModelListView
|
|
||||||
visible: false
|
|
||||||
model: root.rootStore.contactsModel
|
|
||||||
delegate: Item {
|
|
||||||
property string pubKey: model.pubKey
|
|
||||||
property string name: model.displayName
|
|
||||||
property string icon: model.icon
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
clip: true
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
d.initialize()
|
|
||||||
|
|
||||||
// Build groupUsersModel type from model type (to fit with expected StatusTagSelector format
|
|
||||||
for (var i = 0; i < groupUsersModelListView.count; i ++) {
|
|
||||||
var entry = groupUsersModelListView.itemAtIndex(i)
|
|
||||||
|
|
||||||
// Add all group users different than me
|
|
||||||
if(!entry.isAdmin) {
|
|
||||||
d.groupUsersModel.insert(d.groupUsersModel.count,
|
|
||||||
{"pubKey": entry.pubKey,
|
|
||||||
"name": entry.name,
|
|
||||||
"icon": entry.icon,
|
|
||||||
"isReadonly": !root.chatContentModule.amIChatAdmin()})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Build contactsModel type from model type (to fit with expected StatusTagSelector format
|
|
||||||
for (var j = 0; j < contactsModelListView.count; j ++) {
|
|
||||||
var entry2 = contactsModelListView.itemAtIndex(j)
|
|
||||||
d.contactsModel.insert(d.contactsModel.count,
|
|
||||||
{"pubKey": entry2.pubKey,
|
|
||||||
"displayName": entry2.name,
|
|
||||||
"icon": entry2.icon,
|
|
||||||
"isIdenticon": false,
|
|
||||||
"onlineStatus": false,
|
|
||||||
"isReadonly": !root.chatContentModule.amIChatAdmin()})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update contacts list used by StatusTagSelector
|
|
||||||
tagSelector.sortModel(d.contactsModel)
|
|
||||||
}
|
|
||||||
|
|
||||||
StatusTagSelector {
|
|
||||||
id: tagSelector
|
|
||||||
|
|
||||||
function memberExists(memberId) {
|
|
||||||
var exists = false
|
|
||||||
for (var i = 0; i < groupUsersModelListView.count; i ++) {
|
|
||||||
var entry = groupUsersModelListView.itemAtIndex(i)
|
|
||||||
if(entry.pubKey === memberId) {
|
|
||||||
exists = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return exists
|
|
||||||
}
|
|
||||||
|
|
||||||
function addNewMember(memberId) {
|
|
||||||
if(d.find(memberId, d.addedMembersIds)) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!memberExists(memberId)) {
|
|
||||||
d.addedMembersIds.push(memberId)
|
|
||||||
}
|
|
||||||
|
|
||||||
if(memberExists(memberId) && d.find(memberId, d.removedMembersIds)) {
|
|
||||||
d.removedMembersIds.pop(memberId)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeExistingMember(memberId) {
|
|
||||||
if(d.find(memberId, d.removedMembersIds)) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if(memberExists(memberId)) {
|
|
||||||
d.removedMembersIds.push(memberId)
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!memberExists(memberId) && d.find(memberId, d.addedMembersIds)) {
|
|
||||||
d.addedMembersIds.pop(memberId)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
namesModel: d.groupUsersModel
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.alignment: Qt.AlignTop | Qt.AlignLeft
|
|
||||||
maxHeight: root.maxHeight
|
|
||||||
nameCountLimit: 20
|
|
||||||
showSortedListOnlyWhenText: true
|
|
||||||
toLabelText: qsTr("To: ")
|
|
||||||
warningText: qsTr("USER LIMIT REACHED")
|
|
||||||
onTextChanged: sortModel(d.contactsModel)
|
|
||||||
onAddMember: addNewMember(memberId)
|
|
||||||
onRemoveMember: removeExistingMember(memberId)
|
|
||||||
ringSpecModelGetter: function(pubKey) {
|
|
||||||
return Utils.getColorHashAsJson(pubKey);
|
|
||||||
}
|
|
||||||
compressedKeyGetter: function(pubKey) {
|
|
||||||
return Utils.getCompressedPk(pubKey);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
StatusButton {
|
|
||||||
id: confirmButton
|
|
||||||
implicitHeight: 44
|
|
||||||
Layout.alignment: Qt.AlignTop
|
|
||||||
text: qsTr("Confirm")
|
|
||||||
onClicked: {
|
|
||||||
if(root.chatContentModule.chatDetails.id &&((d.addedMembersIds.length > 0) || (d.removedMembersIds.length > 0))) {
|
|
||||||
// Add request:
|
|
||||||
root.sectionModule.addGroupMembers(root.chatContentModule.chatDetails.id, JSON.stringify(d.addedMembersIds))
|
|
||||||
|
|
||||||
// Remove request:
|
|
||||||
root.sectionModule.removeMembersFromGroupChat("", root.chatContentModule.chatDetails.id, JSON.stringify(d.removedMembersIds))
|
|
||||||
}
|
|
||||||
root.panelClosed()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue