status-desktop/ui/app/AppLayouts/Wallet/popups/swap/SwapInputParamsForm.qml

57 lines
1.9 KiB
QML

import QtQml 2.15
import StatusQ.Core.Utils 0.1 as SQUtils
/* This is used so that there is an easy way to fill in the data
needed to launch the Swap Modal with pre-filled requisites. */
QtObject {
id: root
signal formValuesChanged()
property string selectedAccountAddress: ""
property int selectedNetworkChainId: -1
property string fromTokensKey: ""
property string fromTokenAmount: ""
property string toTokenKey: root.defaultToTokenKey
property string toTokenAmount: ""
property double selectedSlippage: 0.5
// default token key
property string defaultToTokenKey: ""
onSelectedAccountAddressChanged: root.formValuesChanged()
onSelectedNetworkChainIdChanged: root.formValuesChanged()
onFromTokensKeyChanged: root.formValuesChanged()
onFromTokenAmountChanged: root.formValuesChanged()
onToTokenKeyChanged: root.formValuesChanged()
onToTokenAmountChanged: root.formValuesChanged()
function resetFormData() {
selectedAccountAddress = ""
selectedNetworkChainId = -1
selectedSlippage = 0.5
root.resetToAndFromTokenValues()
}
function resetToAndFromTokenValues() {
fromTokensKey = ""
fromTokenAmount = ""
toTokenKey = root.defaultToTokenKey
toTokenAmount = ""
}
function isFormFilledCorrectly() {
return !!root.selectedAccountAddress &&
root.selectedNetworkChainId !== -1 &&
!!root.fromTokensKey && !!root.toTokenKey &&
((!!root.fromTokenAmount &&
!isNaN(SQUtils.AmountsArithmetic.fromString(root.fromTokenAmount)) &&
SQUtils.AmountsArithmetic.fromString(root.fromTokenAmount) > 0) ||
(!!root.toTokenAmount &&
!isNaN(SQUtils.AmountsArithmetic.fromString(root.toTokenAmount)) &&
SQUtils.AmountsArithmetic.fromString(root.toTokenAmount) > 0 )) &&
root.selectedSlippage > 0
}
}