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

171 lines
5.8 KiB
QML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import QtQuick 2.13
import shared.status 1.0
import shared.popups 1.0
import StatusQ.Controls 0.1
import StatusQ.Core 0.1
import StatusQ.Components 0.1
import StatusQ.Core.Theme 0.1
import StatusQ.Core.Utils 0.1
import utils 1.0
import "../../stores"
import "../../controls"
import "../../popups"
Item {
id: root
signal goBack
property WalletStore walletStore
property var emojiPopup
Column {
id: column
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: Style.current.padding
anchors.rightMargin: Style.current.padding
spacing: Style.current.bigPadding
Row {
id: header
spacing: Style.current.smallPadding
StatusSmartIdenticon {
id: accountImage
anchors.verticalCenter: parent.verticalCenter
icon: StatusIconSettings {
width: isLetterIdenticon ? 40 : 20
height: isLetterIdenticon ? 40 : 20
color: walletStore.currentAccount.color
emoji: walletStore.currentAccount.emoji
name: !walletStore.currentAccount.emoji ? "filled-account": ""
letterSize: 14
isLetterIdenticon: !!walletStore.currentAccount.emoji
background: StatusIconBackgroundSettings {
width: 40
height: 40
color: Theme.palette.primaryColor3
}
}
}
Column {
spacing: Style.current.halfPadding
Row {
spacing: Style.current.halfPadding
StatusBaseText {
id: accountName
text: walletStore.currentAccount.name
font.weight: Font.Bold
font.pixelSize: 28
color: Theme.palette.directColor1
}
StatusFlatRoundButton {
width: 28
height: 28
anchors.verticalCenter: accountName.verticalCenter
type: StatusFlatRoundButton.Type.Tertiary
color: "transparent"
icon.name: "pencil"
onClicked: Global.openPopup(renameAccountModalComponent)
}
}
StatusAddress {
text: walletStore.currentAccount.address
font.pixelSize: 15
}
}
}
Flow {
width: parent.width
spacing: Style.current.halfPadding
InformationTile {
id: typeRectangle
maxWidth: parent.width
primaryText: qsTr("Type")
secondaryText: {
const walletType = walletStore.currentAccount.walletType
if (walletType === "watch") {
return qsTr("Watch-Only Account")
} else if (walletType === "generated" || walletType === "") {
return qsTr("Generated by your Status seed phrase profile")
} else {
return qsTr("Imported Account")
}
}
}
InformationTile {
maxWidth: parent.width
primaryText: qsTr("Storage")
secondaryText: qsTr("On Device")
}
InformationTile {
maxWidth: parent.width
primaryText: qsTr("Derivation Path")
secondaryText: walletStore.currentAccount.path
visible: walletStore.currentAccount.path
}
InformationTile {
maxWidth: parent.width
visible: walletStore.currentAccount.relatedAccounts.count > 0
primaryText: qsTr("Related Accounts")
tagsModel: walletStore.currentAccount.relatedAccounts
tagsDelegate: StatusListItemTag {
color: model.color
height: 24
radius: 6
closeButtonVisible: false
icon.emoji: model.emoji
icon.emojiSize: Emoji.size.verySmall
icon.isLetterIdenticon: true
title: model.name
titleText.font.pixelSize: 12
titleText.color: Theme.palette.indirectColor1
}
}
}
StatusButton {
visible: walletStore.currentAccount.walletType !== ""
text: qsTr("Remove from your profile")
type: StatusBaseButton.Type.Danger
ConfirmationDialog {
id: confirmationPopup
header.title: qsTr("Confirm %1 Removal").arg(walletStore.currentAccount.name)
confirmationText: qsTr("You will not be able to restore viewing access to this account in the future unless you enter this accounts address again.")
confirmButtonLabel: qsTr("Remove Account")
onConfirmButtonClicked: {
confirmationPopup.close();
root.goBack();
root.walletStore.deleteAccount(walletStore.currentAccount.address);
}
}
onClicked : {
confirmationPopup.open()
}
}
}
Component {
id: renameAccountModalComponent
RenameAccontModal {
anchors.centerIn: parent
onClosed: destroy()
walletStore: root.walletStore
emojiPopup: root.emojiPopup
}
}
}