241 lines
7.4 KiB
QML
241 lines
7.4 KiB
QML
import QtQuick 2.15
|
|
import QtQuick.Controls 2.15
|
|
import QtQuick.Layouts 1.15
|
|
|
|
import StatusQ.Models 0.1
|
|
|
|
import Storybook 1.0
|
|
|
|
import utils 1.0
|
|
import shared.popups.send.models 1.0
|
|
|
|
Item {
|
|
id: root
|
|
|
|
ListModel {
|
|
id: listModel
|
|
|
|
readonly property var data: [
|
|
{
|
|
tokensKey: "key_ETH",
|
|
name: "Ether",
|
|
symbol: "ETH",
|
|
addressPerChain: [
|
|
{ chainId: 1, address: "0x0000000000000000000000000000000000000000"},
|
|
{ chainId: 5, address: "0x0000000000000000000000000000000000000000"},
|
|
{ chainId: 10, address: "0x0000000000000000000000000000000000000000"},
|
|
{ chainId: 420, address: "0x0000000000000000000000000000000000000000"},
|
|
{ chainId: 42161, address: "0x0000000000000000000000000000000000000000"},
|
|
{ chainId: 421613, address: "0x0000000000000000000000000000000000000000"}
|
|
],
|
|
balances: [
|
|
{
|
|
chainId: "chain_id_1",
|
|
balance: "186316672770338050",
|
|
account: "account_1",
|
|
},
|
|
{
|
|
chainId: "chain_id_1",
|
|
balance: "386318672772348050",
|
|
account: "account_2",
|
|
},
|
|
{
|
|
chainId: "chain_id_2",
|
|
balance: "186311232772348990",
|
|
account: "account_1",
|
|
},
|
|
{
|
|
chainId: "chain_id_2",
|
|
balance: "986317232772348990",
|
|
account: "account_1",
|
|
}
|
|
],
|
|
decimals: 18,
|
|
communityId: "",
|
|
communityName: "",
|
|
communityImage: Qt.resolvedUrl(""),
|
|
marketDetails: {
|
|
changePct24hour: -2.1232,
|
|
currencyPrice: {
|
|
amount: 3423.23898
|
|
}
|
|
},
|
|
detailsLoading: false,
|
|
image: Qt.resolvedUrl("")
|
|
},
|
|
{
|
|
tokensKey: "key_SNT",
|
|
name: "Status",
|
|
symbol: "SNT",
|
|
addressPerChain: [
|
|
{ chainId: 1, address: "0x0000000000000000000000000000000000000000"},
|
|
{ chainId: 5, address: "0x0000000000000000000000000000000000000000"},
|
|
{ chainId: 10, address: "0x0000000000000000000000000000000000000000"},
|
|
{ chainId: 420, address: "0x0000000000000000000000000000000000000000"},
|
|
{ chainId: 42161, address: "0x0000000000000000000000000000000000000000"},
|
|
{ chainId: 421613, address: "0x0000000000000000000000000000000000000000"}
|
|
],
|
|
balances: [
|
|
{
|
|
chainId: "chain_id_1",
|
|
balance: "386316672770338850",
|
|
account: "account_1",
|
|
},
|
|
{
|
|
chainId: "chain_id_1",
|
|
balance: "377778672772348050",
|
|
account: "account_2",
|
|
},
|
|
{
|
|
chainId: "chain_id_2",
|
|
balance: "146311232772348990",
|
|
account: "account_1",
|
|
},
|
|
{
|
|
chainId: "chain_id_3",
|
|
balance: "86317232772348990",
|
|
account: "account_1",
|
|
}
|
|
],
|
|
decimals: 18,
|
|
communityId: "",
|
|
communityName: "",
|
|
communityImage: Qt.resolvedUrl(""),
|
|
marketDetails: {
|
|
changePct24hour: 9.232,
|
|
currencyPrice: {
|
|
amount: 33.23898
|
|
}
|
|
},
|
|
detailsLoading: false,
|
|
image: Qt.resolvedUrl("")
|
|
},
|
|
{
|
|
tokensKey: "key_MYASST",
|
|
name: "Community Asset",
|
|
symbol: "MYASST",
|
|
balances: [
|
|
{
|
|
chainId: "chain_id_1",
|
|
balance: "23234",
|
|
account: "account_1",
|
|
},
|
|
{
|
|
chainId: "chain_id_1",
|
|
balance: "63234",
|
|
account: "account_2",
|
|
}
|
|
],
|
|
decimals: 3,
|
|
communityId: "0x033f36ccb",
|
|
communityName: "My Community",
|
|
communityImage: Constants.tokenIcon("DAI", false),
|
|
marketDetails: {
|
|
changePct24hour: 0,
|
|
currencyPrice: {
|
|
amount: 0
|
|
}
|
|
},
|
|
detailsLoading: false,
|
|
image: Constants.tokenIcon("ZRX", false)
|
|
}
|
|
]
|
|
|
|
Component.onCompleted: {
|
|
append(data)
|
|
|
|
const accounts = new Set()
|
|
|
|
data.forEach(e => e.balances.forEach(
|
|
e => { accounts.add(e.account) }))
|
|
|
|
accountsSelector.model = [...accounts.values()]
|
|
}
|
|
}
|
|
|
|
ManageTokensController {
|
|
id: manageTokensController
|
|
|
|
sourceModel: listModel
|
|
serializeAsCollectibles: false
|
|
|
|
onRequestLoadSettings: {
|
|
loadingStarted()
|
|
|
|
const jsonData = [
|
|
{
|
|
"key": "ETH",
|
|
"position": 1,
|
|
"visible": true
|
|
},
|
|
{
|
|
"key": "SNT",
|
|
"position": 2,
|
|
"visible": true
|
|
},
|
|
{
|
|
"key": "MYASST",
|
|
"position": 5,
|
|
"visible": true
|
|
}
|
|
]
|
|
|
|
loadingFinished(JSON.stringify(jsonData))
|
|
}
|
|
}
|
|
|
|
|
|
SendModalAssetsAdaptor {
|
|
id: adaptor
|
|
|
|
controller: manageTokensController
|
|
account: accountsSelector.selection[0]
|
|
tokensModel: listModel
|
|
}
|
|
|
|
ColumnLayout {
|
|
anchors.fill: parent
|
|
|
|
Label { text: "ACCOUNTS:" }
|
|
|
|
CheckBoxFlowSelector {
|
|
id: accountsSelector
|
|
|
|
Layout.fillWidth: true
|
|
initialSelection: true
|
|
exclusive: true
|
|
}
|
|
|
|
RowLayout {
|
|
GenericListView {
|
|
label: "Input model"
|
|
|
|
model: listModel
|
|
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: true
|
|
|
|
skipEmptyRoles: true
|
|
}
|
|
|
|
GenericListView {
|
|
label: "Adapter's output model"
|
|
|
|
model: adaptor.model
|
|
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: true
|
|
|
|
roles:
|
|
["key", "error", "currentBalance", "currentCurrencyBalance", "currentBalanceText",
|
|
"icon", "visible", "marketDetailsAvailable", "marketDetailsLoading",
|
|
"marketPrice", "marketChangePct24hour", "isCommunityAsset", "balancesModel"]
|
|
|
|
skipEmptyRoles: true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// category: Adaptors
|