status-desktop/ui/app/AppLayouts/Profile/views/wallet/PermissionsListView.qml

74 lines
2.4 KiB
QML

import QtQuick 2.14
import QtWebEngine 1.10
import shared.status 1.0
import StatusQ.Controls 0.1
import StatusQ.Core 0.1
import StatusQ.Core.Theme 0.1
import StatusQ.Components 0.1
import utils 1.0
import AppLayouts.Profile.stores 1.0
Column {
id: root
property WalletStore walletStore
Repeater {
id: permissionsList
model: walletStore.dappList
delegate: Item {
property string dappName: model.name
width: parent.width
height: listItem.height + spacer.height
WebEngineView {
id: webView
url: dappName.startsWith("http") ? dappName : `http://${dappName}`
visible: false
}
StatusListItem {
id: listItem
title: webView.title !== "" ? webView.title : dappName
subTitle: dappName
asset.name: webView.icon != "" ? webView.icon : Style.svg("compassActive")
asset.isImage: true
width: parent.width
highlighted: true
sensor.enabled: false
components: [
StatusButton {
text: model.accounts.count > 1 ? qsTr("Disconnect All") : qsTr("Disconnect")
size: StatusBaseButton.Size.Small
type: StatusBaseButton.Type.Danger
onClicked: {
walletStore.disconnect(dappName)
}
}
]
bottomModel: model.accounts
bottomDelegate: StatusListItemTag {
property int outerIndex: listItem.index || 0
title: model.name
asset.emoji: !!model.emoji ? model.emoji: ""
asset.color: Utils.getColorForId(model.colorId)
asset.name: !model.emoji ? "filled-account": ""
asset.letterSize: 14
asset.isLetterIdenticon: !!model.emoji
asset.bgColor: Theme.palette.indirectColor1
onClicked: {
walletStore.disconnectAddress(dappName, model.address)
}
}
}
Item {
id: spacer
height: Style.current.bigPadding
width: parent.width
}
} // Item
} // Repeater
} // Column