2020-10-16 13:21:57 +00:00
|
|
|
import QtQuick 2.13
|
|
|
|
import QtQuick.Controls 2.13
|
|
|
|
import QtQuick.Layouts 1.13
|
2021-09-28 15:04:06 +00:00
|
|
|
|
|
|
|
import utils 1.0
|
2021-10-14 09:45:23 +00:00
|
|
|
import "../"
|
2021-10-14 12:14:11 +00:00
|
|
|
import "./"
|
2020-10-16 13:21:57 +00:00
|
|
|
|
2020-10-22 12:06:35 +00:00
|
|
|
Column {
|
2020-10-16 13:21:57 +00:00
|
|
|
id: root
|
2020-10-22 12:06:35 +00:00
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
visible: !isValid
|
|
|
|
spacing: 5
|
|
|
|
|
2020-10-16 13:21:57 +00:00
|
|
|
property var account
|
|
|
|
property double amount
|
|
|
|
property var asset
|
2020-10-22 12:06:35 +00:00
|
|
|
property bool isValid: false
|
|
|
|
property alias errorMessage: txtValidationError.text
|
2020-10-16 13:21:57 +00:00
|
|
|
|
|
|
|
onAccountChanged: validate()
|
|
|
|
onAmountChanged: validate()
|
|
|
|
onAssetChanged: validate()
|
|
|
|
|
|
|
|
function validate() {
|
|
|
|
let isValid = true
|
2020-12-09 14:10:09 +00:00
|
|
|
if (!(account && account.assets && asset && amount >= 0)) {
|
2020-10-16 13:21:57 +00:00
|
|
|
return root.isValid
|
|
|
|
}
|
|
|
|
const currAcctAsset = Utils.findAssetBySymbol(account.assets, asset.symbol)
|
2022-02-09 09:43:23 +00:00
|
|
|
|
2020-10-16 13:21:57 +00:00
|
|
|
if (currAcctAsset && currAcctAsset.value < amount) {
|
|
|
|
isValid = false
|
|
|
|
}
|
|
|
|
root.isValid = isValid
|
|
|
|
return isValid
|
|
|
|
}
|
2020-10-22 12:06:35 +00:00
|
|
|
SVGImage {
|
|
|
|
id: imgExclamation
|
|
|
|
width: 13.33
|
|
|
|
height: 13.33
|
|
|
|
sourceSize.height: height * 2
|
|
|
|
sourceSize.width: width * 2
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
fillMode: Image.PreserveAspectFit
|
2021-10-14 09:45:23 +00:00
|
|
|
source: Style.svg("exclamation_outline")
|
2020-10-22 12:06:35 +00:00
|
|
|
}
|
|
|
|
StyledText {
|
|
|
|
id: txtValidationError
|
2021-02-18 16:36:05 +00:00
|
|
|
//% "Insufficient balance"
|
|
|
|
text: qsTrId("insufficient-balance")
|
2020-10-22 12:06:35 +00:00
|
|
|
verticalAlignment: Text.AlignVCenter
|
|
|
|
horizontalAlignment: Text.AlignHCenter
|
|
|
|
font.pixelSize: 13
|
|
|
|
height: 18
|
|
|
|
color: Style.current.danger
|
2020-10-16 13:21:57 +00:00
|
|
|
}
|
|
|
|
}
|