181 lines
5.3 KiB
QML
181 lines
5.3 KiB
QML
import QtQuick 2.15
|
|
import QtQuick.Controls 2.15
|
|
|
|
import StatusQ.Core.Theme 0.1
|
|
|
|
import AppLayouts.Chat.panels.communities 1.0
|
|
import AppLayouts.Chat.controls.community 1.0
|
|
import utils 1.0
|
|
|
|
import SortFilterProxyModel 0.2
|
|
|
|
import Storybook 1.0
|
|
import Models 1.0
|
|
|
|
|
|
SplitView {
|
|
orientation: Qt.Vertical
|
|
SplitView.fillWidth: true
|
|
|
|
property bool globalUtilsReady: false
|
|
property bool mainModuleReady: false
|
|
|
|
Logs { id: logs }
|
|
|
|
QtObject {
|
|
function isCompressedPubKey(publicKey) {
|
|
return true
|
|
}
|
|
|
|
function getCompressedPk(publicKey) {
|
|
return "compressed_" + publicKey
|
|
}
|
|
|
|
function getColorId(publicKey) {
|
|
return Math.floor(Math.random() * 10)
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
Utils.globalUtilsInst = this
|
|
globalUtilsReady = true
|
|
|
|
}
|
|
Component.onDestruction: {
|
|
globalUtilsReady = false
|
|
Utils.globalUtilsInst = {}
|
|
}
|
|
}
|
|
|
|
QtObject {
|
|
function getContactDetailsAsJson() {
|
|
return JSON.stringify({ ensVerified: true })
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
mainModuleReady = true
|
|
Utils.mainModuleInst = this
|
|
}
|
|
Component.onDestruction: {
|
|
mainModuleReady = false
|
|
Utils.mainModuleInst = {}
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
SplitView.fillWidth: true
|
|
SplitView.fillHeight: true
|
|
color: Theme.palette.statusAppLayout.rightPanelBackgroundColor
|
|
|
|
Loader {
|
|
anchors.fill: parent
|
|
active: globalUtilsReady && mainModuleReady
|
|
|
|
sourceComponent: CommunityAirdropsSettingsPanel {
|
|
id: communityAirdropsSettingsPanel
|
|
anchors.fill: parent
|
|
anchors.topMargin: 50
|
|
assetsModel: AssetsModel {}
|
|
collectiblesModel: ListModel {}
|
|
|
|
CollectiblesModel {
|
|
id: collectiblesModel
|
|
}
|
|
|
|
SortFilterProxyModel {
|
|
id: collectiblesModelWithSupply
|
|
|
|
sourceModel: collectiblesModel
|
|
|
|
proxyRoles: [
|
|
ExpressionRole {
|
|
name: "supply"
|
|
expression: ((model.index + 1) * 115).toString()
|
|
},
|
|
ExpressionRole {
|
|
name: "infiniteSupply"
|
|
expression: !(model.index % 4)
|
|
},
|
|
ExpressionRole {
|
|
name: "chainName"
|
|
expression: model.index ? "Optimism" : "Arbitrum"
|
|
},
|
|
ExpressionRole {
|
|
|
|
readonly property string icon1: "network/Network=Optimism"
|
|
readonly property string icon2: "network/Network=Arbitrum"
|
|
|
|
name: "chainIcon"
|
|
expression: model.index ? icon1 : icon2
|
|
}
|
|
]
|
|
|
|
filters: ValueFilter {
|
|
roleName: "category"
|
|
value: TokenCategories.Category.Community
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
Qt.callLater(() => communityAirdropsSettingsPanel.collectiblesModel = this)
|
|
}
|
|
}
|
|
|
|
AssetsModel {
|
|
id: assetsModel
|
|
}
|
|
|
|
SortFilterProxyModel {
|
|
id: assetsModelWithSupply
|
|
|
|
sourceModel: assetsModel
|
|
|
|
proxyRoles: [
|
|
ExpressionRole {
|
|
name: "supply"
|
|
expression: ((model.index + 1) * 258).toString()
|
|
},
|
|
ExpressionRole {
|
|
name: "infiniteSupply"
|
|
expression: !(model.index % 4)
|
|
},
|
|
ExpressionRole {
|
|
name: "chainName"
|
|
expression: model.index ? "Ethereum Mainnet" : "Goerli"
|
|
},
|
|
ExpressionRole {
|
|
|
|
readonly property string icon1: "network/Network=Ethereum"
|
|
readonly property string icon2: "network/Network=Testnet"
|
|
|
|
name: "chainIcon"
|
|
expression: model.index ? icon1 : icon2
|
|
}
|
|
]
|
|
|
|
filters: ValueFilter {
|
|
roleName: "category"
|
|
value: TokenCategories.Category.Community
|
|
}
|
|
|
|
|
|
Component.onCompleted: {
|
|
Qt.callLater(() => communityAirdropsSettingsPanel.assetsModel = this)
|
|
}
|
|
}
|
|
|
|
membersModel: UsersModel {}
|
|
|
|
onAirdropClicked: logs.logEvent("CommunityAirdropsSettingsPanel::onAirdropClicked")
|
|
}
|
|
}
|
|
}
|
|
|
|
LogsAndControlsPanel {
|
|
id: logsAndControlsPanel
|
|
|
|
SplitView.minimumHeight: 100
|
|
SplitView.preferredHeight: 150
|
|
|
|
logsView.logText: logs.logText
|
|
}
|
|
}
|