UserListPanel simplified, dependency on utilsStore removed

This commit is contained in:
Michał Cieślak 2024-10-28 15:24:53 +01:00 committed by Michał
parent 0db6fe2701
commit 0f98244e1f
3 changed files with 35 additions and 58 deletions

View File

@ -1,72 +1,35 @@
import QtQuick 2.14
import QtQuick.Controls 2.14
import AppLayouts.Chat.panels 1.0
import QtQuick 2.15
import QtQuick.Controls 2.15
import utils 1.0
import AppLayouts.Chat.panels 1.0
import StatusQ 0.1
import Storybook 1.0
import Models 1.0
SplitView {
id: root
import SortFilterProxyModel 0.2
SplitView {
Logs { id: logs }
orientation: Qt.Vertical
property bool globalUtilsReady: false
property bool mainModuleReady: false
UsersModel {
id: model
}
// 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 {
UserListPanel {
SplitView.fillWidth: true
SplitView.fillHeight: true
Loader {
anchors.fill: parent
active: globalUtilsReady && mainModuleReady
sourceComponent: UserListPanel {
usersModel: model
label: "Some label"
usersModel: SortFilterProxyModel {
sourceModel: model
proxyRoles: FastExpressionRole {
name: "compressedKey"
expression: "compressed"
}
}
}

View File

@ -12,7 +12,6 @@ import shared 1.0
import shared.panels 1.0
import shared.status 1.0
import shared.views.chat 1.0
import shared.stores 1.0 as SharedStores
import utils 1.0
@ -24,7 +23,6 @@ Item {
id: root
property ChatStores.RootStore store
property SharedStores.UtilsStore utilsStore
property var usersModel
property string label
@ -112,7 +110,7 @@ Item {
width: ListView.view.width
nickName: model.localNickname
userName: ProfileUtils.displayName("", model.ensName, model.displayName, model.alias)
pubKey: model.isEnsVerified ? "" : Utils.getCompressedPk(model.pubKey)
pubKey: model.isEnsVerified ? "" : model.compressedKey
isContact: model.isContact
isVerified: model.isVerified
isUntrustworthy: model.isUntrustworthy
@ -130,9 +128,9 @@ Item {
Global.openMenu(profileContextMenuComponent, this, {
profileType, trustStatus, contactType, ensVerified, onlineStatus, hasLocalNickname, chatType, isAdmin,
publicKey: model.pubKey,
emojiHash: root.utilsStore.getEmojiHash(model.pubKey),
emojiHash: model.emojiHash,
displayName: nickName || userName,
userIcon: model.icon,
userIcon: model.icon
})
} else if (mouse.button === Qt.LeftButton) {
Global.openProfilePopup(model.pubKey)

View File

@ -12,6 +12,7 @@ import shared.views.chat 1.0
import shared.stores.send 1.0 as SendStores
import SortFilterProxyModel 0.2
import StatusQ 0.1
import StatusQ.Core 0.1
import StatusQ.Core.Theme 0.1
import StatusQ.Layout 0.1
@ -183,10 +184,25 @@ StatusSectionLayout {
anchors.fill: parent
store: root.rootStore
utilsStore: root.utilsStore
label: qsTr("Members")
communityMemberReevaluationStatus: root.rootStore.communityMemberReevaluationStatus
usersModel: usersStore.usersModel
usersModel: SortFilterProxyModel {
sourceModel: usersStore.usersModel
proxyRoles: [
FastExpressionRole {
name: "emojiHash"
expression: root.utilsStore.getEmojiHash(model.pubKey)
expectedRoles: ["pubKey"]
},
FastExpressionRole {
name: "compressedKey"
expression: root.utilsStore.getCompressedPk(model.pubKey)
expectedRoles: ["pubKey"]
}
]
}
}
}