127 lines
3.5 KiB
QML
127 lines
3.5 KiB
QML
|
import QtQuick 2.14
|
||
|
import QtQuick.Layouts 1.14
|
||
|
import QtQml.Models 2.14
|
||
|
|
||
|
import StatusQ.Core 0.1
|
||
|
import StatusQ.Controls 0.1
|
||
|
import StatusQ.Components 0.1
|
||
|
import StatusQ.Popups.Dialog 0.1
|
||
|
import StatusQ.Core.Theme 0.1
|
||
|
|
||
|
import utils 1.0
|
||
|
|
||
|
StatusDialog {
|
||
|
id: root
|
||
|
|
||
|
property alias accountName: accountText.text
|
||
|
property alias feeText: feeText.text
|
||
|
property alias isFeeLoading: feeLoading.visible
|
||
|
|
||
|
property string collectibleName
|
||
|
property string networkName
|
||
|
|
||
|
signal signTransactionClicked()
|
||
|
signal cancelClicked()
|
||
|
|
||
|
QtObject {
|
||
|
id: d
|
||
|
|
||
|
property int minTextWidth: 50
|
||
|
}
|
||
|
|
||
|
title: qsTr("Sign transaction - Mint %1 token").arg(root.collectibleName)
|
||
|
implicitWidth: 520 // by design
|
||
|
topPadding: 2 * Style.current.padding // by design
|
||
|
bottomPadding: topPadding
|
||
|
contentItem: ColumnLayout {
|
||
|
id: column
|
||
|
|
||
|
spacing: Style.current.padding
|
||
|
|
||
|
RowLayout {
|
||
|
id: accountRow
|
||
|
|
||
|
Layout.fillWidth: true
|
||
|
|
||
|
StatusBaseText {
|
||
|
Layout.maximumWidth: accountRow.width - accountRow.spacing - accountText.implicitWidth
|
||
|
Layout.minimumWidth: d.minTextWidth
|
||
|
text: qsTr("Account:")
|
||
|
horizontalAlignment: Text.AlignLeft
|
||
|
font.pixelSize: Style.current.primaryTextFontSize
|
||
|
elide: Text.ElideMiddle
|
||
|
}
|
||
|
|
||
|
StatusBaseText {
|
||
|
id: accountText
|
||
|
|
||
|
Layout.fillWidth: true
|
||
|
Layout.minimumWidth: d.minTextWidth
|
||
|
horizontalAlignment: Text.AlignRight
|
||
|
elide: Text.ElideRight
|
||
|
font.pixelSize: Style.current.primaryTextFontSize
|
||
|
}
|
||
|
}
|
||
|
|
||
|
RowLayout {
|
||
|
id: feeRow
|
||
|
|
||
|
Layout.fillWidth: true
|
||
|
|
||
|
StatusBaseText {
|
||
|
Layout.maximumWidth: feeRow.width - feeRow.spacing - (root.isFeeLoading ? feeLoading.implicitWidth : feeText.implicitWidth)
|
||
|
Layout.minimumWidth: d.minTextWidth
|
||
|
text: qsTr("%1 transaction fee:").arg(root.networkName)
|
||
|
horizontalAlignment: Text.AlignLeft
|
||
|
font.pixelSize: Style.current.primaryTextFontSize
|
||
|
elide: Text.ElideMiddle
|
||
|
}
|
||
|
|
||
|
// Filler
|
||
|
Item {
|
||
|
visible: feeLoading.visible
|
||
|
Layout.fillWidth: true
|
||
|
}
|
||
|
|
||
|
StatusDotsLoadingIndicator {
|
||
|
id: feeLoading
|
||
|
}
|
||
|
|
||
|
StatusBaseText {
|
||
|
id: feeText
|
||
|
|
||
|
visible: !feeLoading.visible
|
||
|
Layout.fillWidth: true
|
||
|
Layout.minimumWidth: d.minTextWidth
|
||
|
horizontalAlignment: Text.AlignRight
|
||
|
color: Theme.palette.baseColor1
|
||
|
elide: Text.ElideRight
|
||
|
font.pixelSize: Style.current.primaryTextFontSize
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
footer: StatusDialogFooter {
|
||
|
spacing: Style.current.padding
|
||
|
rightButtons: ObjectModel {
|
||
|
StatusButton {
|
||
|
text: qsTr("Cancel")
|
||
|
type: StatusBaseButton.Type.Danger
|
||
|
onClicked: {
|
||
|
root.cancelClicked()
|
||
|
root.close()
|
||
|
}
|
||
|
}
|
||
|
StatusButton {
|
||
|
enabled: !root.isFeeLoading
|
||
|
icon.name: "password"
|
||
|
text: qsTr("Sign transaction")
|
||
|
onClicked: {
|
||
|
root.signTransactionClicked()
|
||
|
root.close()
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|