parent
bab0fee0ee
commit
93428d8b2e
|
@ -62,6 +62,9 @@ ApplicationWindow {
|
||||||
ListElement {
|
ListElement {
|
||||||
title: "CreateChannelPopup"
|
title: "CreateChannelPopup"
|
||||||
}
|
}
|
||||||
|
ListElement {
|
||||||
|
title: "UserListPanel"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SplitView {
|
SplitView {
|
||||||
|
|
|
@ -0,0 +1,140 @@
|
||||||
|
import QtQuick 2.14
|
||||||
|
import QtQuick.Controls 2.14
|
||||||
|
import AppLayouts.Chat.panels 1.0
|
||||||
|
|
||||||
|
import utils 1.0
|
||||||
|
|
||||||
|
import Storybook 1.0
|
||||||
|
|
||||||
|
SplitView {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
Logs { id: logs }
|
||||||
|
|
||||||
|
orientation: Qt.Vertical
|
||||||
|
|
||||||
|
property bool globalUtilsReady: false
|
||||||
|
property bool mainModuleReady: false
|
||||||
|
|
||||||
|
ListModel {
|
||||||
|
id: model
|
||||||
|
|
||||||
|
ListElement {
|
||||||
|
pubKey: "0x043a7ed0e8d1012cf04"
|
||||||
|
onlineStatus: 1
|
||||||
|
isContact: true
|
||||||
|
isVerified: true
|
||||||
|
isAdmin: false
|
||||||
|
isUntrustworthy: false
|
||||||
|
displayName: "Mike"
|
||||||
|
alias: ""
|
||||||
|
localNickname: ""
|
||||||
|
ensName: ""
|
||||||
|
icon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0BhCExPynn1gWf9bx498P7/
|
||||||
|
nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
|
||||||
|
colorId: 7
|
||||||
|
}
|
||||||
|
ListElement {
|
||||||
|
pubKey: "0x04df12f12f12f12f1234"
|
||||||
|
onlineStatus: 0
|
||||||
|
isContact: true
|
||||||
|
isVerified: true
|
||||||
|
isAdmin: false
|
||||||
|
isUntrustworthy: false
|
||||||
|
displayName: "Jane"
|
||||||
|
alias: ""
|
||||||
|
localNickname: ""
|
||||||
|
ensName: ""
|
||||||
|
icon: ""
|
||||||
|
colorId: 7
|
||||||
|
}
|
||||||
|
ListElement {
|
||||||
|
pubKey: "0x04d1b7cc0ef3f470f1238"
|
||||||
|
onlineStatus: 0
|
||||||
|
isContact: true
|
||||||
|
isVerified: false
|
||||||
|
isAdmin: false
|
||||||
|
isUntrustworthy: true
|
||||||
|
displayName: "John"
|
||||||
|
alias: ""
|
||||||
|
localNickname: "Johny Johny"
|
||||||
|
ensName: ""
|
||||||
|
icon: ""
|
||||||
|
colorId: 7
|
||||||
|
}
|
||||||
|
ListElement {
|
||||||
|
pubKey: "0x04d1bed192343f470f1255"
|
||||||
|
onlineStatus: 1
|
||||||
|
isContact: true
|
||||||
|
isVerified: true
|
||||||
|
isAdmin: false
|
||||||
|
isUntrustworthy: true
|
||||||
|
displayName: ""
|
||||||
|
alias: "meth"
|
||||||
|
localNickname: ""
|
||||||
|
ensName: "maria.eth"
|
||||||
|
icon: ""
|
||||||
|
colorId: 7
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// globalUtilsInst mock
|
||||||
|
QtObject {
|
||||||
|
function getCompressedPk(publicKey) { return "zx3sh" + publicKey }
|
||||||
|
|
||||||
|
function getColorHashAsJson(publicKey) {
|
||||||
|
return JSON.stringify([{colorId: 0, segmentLength: 1},
|
||||||
|
{colorId: 19, segmentLength: 2}])
|
||||||
|
}
|
||||||
|
|
||||||
|
function isCompressedPubKey(publicKey) { return true }
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
Utils.globalUtilsInst = this
|
||||||
|
root.globalUtilsReady = true
|
||||||
|
}
|
||||||
|
Component.onDestruction: {
|
||||||
|
root.globalUtilsReady = false
|
||||||
|
Utils.globalUtilsInst = {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// mainModuleInst mock
|
||||||
|
QtObject {
|
||||||
|
function getContactDetailsAsJson(publicKey, getVerificationRequest) {
|
||||||
|
return JSON.stringify({ ensVerified: false })
|
||||||
|
}
|
||||||
|
Component.onCompleted: {
|
||||||
|
Utils.mainModuleInst = this
|
||||||
|
root.mainModuleReady = true
|
||||||
|
}
|
||||||
|
Component.onDestruction: {
|
||||||
|
root.mainModuleReady = false
|
||||||
|
Utils.mainModuleInst = {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Item {
|
||||||
|
SplitView.fillWidth: true
|
||||||
|
SplitView.fillHeight: true
|
||||||
|
|
||||||
|
Loader {
|
||||||
|
anchors.fill: parent
|
||||||
|
active: globalUtilsReady && mainModuleReady
|
||||||
|
|
||||||
|
sourceComponent: UserListPanel {
|
||||||
|
usersModel: model
|
||||||
|
messageContextMenu: null
|
||||||
|
label: "Some label"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LogsAndControlsPanel {
|
||||||
|
id: logsAndControlsPanel
|
||||||
|
|
||||||
|
SplitView.minimumHeight: 100
|
||||||
|
SplitView.preferredHeight: 200
|
||||||
|
|
||||||
|
logsView.logText: logs.logText
|
||||||
|
}
|
||||||
|
}
|
|
@ -16,15 +16,10 @@ Item {
|
||||||
id: root
|
id: root
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
||||||
// Important:
|
property var usersModel
|
||||||
// Each chat/channel has its own ChatContentModule and each ChatContentModule has a single usersModule
|
|
||||||
// usersModule on the backend contains everything needed for this component
|
|
||||||
property var usersModule
|
|
||||||
property var messageContextMenu
|
property var messageContextMenu
|
||||||
property string label
|
property string label
|
||||||
|
|
||||||
property var rootStore
|
|
||||||
|
|
||||||
StatusBaseText {
|
StatusBaseText {
|
||||||
id: titleText
|
id: titleText
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
@ -63,7 +58,7 @@ Item {
|
||||||
displayMarginEnd: anchors.bottomMargin
|
displayMarginEnd: anchors.bottomMargin
|
||||||
|
|
||||||
model: SortFilterProxyModel {
|
model: SortFilterProxyModel {
|
||||||
sourceModel: usersModule.model
|
sourceModel: root.usersModel
|
||||||
|
|
||||||
sorters: [
|
sorters: [
|
||||||
RoleSorter {
|
RoleSorter {
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
SuggestionBoxPanel 1.0 SuggestionBoxPanel.qml
|
SuggestionBoxPanel 1.0 SuggestionBoxPanel.qml
|
||||||
|
UserListPanel 1.0 UserListPanel.qml
|
||||||
|
|
|
@ -113,16 +113,15 @@ StatusSectionLayout {
|
||||||
rightPanel: Component {
|
rightPanel: Component {
|
||||||
id: userListComponent
|
id: userListComponent
|
||||||
UserListPanel {
|
UserListPanel {
|
||||||
rootStore: root.rootStore
|
|
||||||
label: qsTr("Members")
|
label: qsTr("Members")
|
||||||
messageContextMenu: quickActionMessageOptionsMenu
|
messageContextMenu: quickActionMessageOptionsMenu
|
||||||
usersModule: {
|
usersModel: {
|
||||||
let chatContentModule = root.rootStore.currentChatContentModule()
|
let chatContentModule = root.rootStore.currentChatContentModule()
|
||||||
if (!chatContentModule || !chatContentModule.usersModule) {
|
if (!chatContentModule || !chatContentModule.usersModule) {
|
||||||
// New communities have no chats, so no chatContentModule
|
// New communities have no chats, so no chatContentModule
|
||||||
return {}
|
return 0
|
||||||
}
|
}
|
||||||
return chatContentModule.usersModule
|
return chatContentModule.usersModule.model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue