73 lines
2.2 KiB
QML
73 lines
2.2 KiB
QML
|
import QtQuick 2.15
|
||
|
import QtQuick.Controls 2.15
|
||
|
import QtQuick.Layouts 1.15
|
||
|
|
||
|
import AppLayouts.Wallet.controls 1.0
|
||
|
|
||
|
import StatusQ.Core.Theme 0.1
|
||
|
|
||
|
Control {
|
||
|
id: root
|
||
|
|
||
|
property bool closeEnabled: true
|
||
|
property bool buyEnabled: true
|
||
|
property bool receiveEnabled: true
|
||
|
|
||
|
readonly property bool anyVisibleItems: buyCard.visible || receiveCard.visible
|
||
|
|
||
|
signal buyClicked()
|
||
|
signal receiveClicked()
|
||
|
signal closeBuy()
|
||
|
signal closeReceive()
|
||
|
|
||
|
contentItem: RowLayout {
|
||
|
id: layout
|
||
|
spacing: Theme.padding
|
||
|
|
||
|
BannerCard {
|
||
|
id: buyCard
|
||
|
objectName: "buyCard"
|
||
|
Layout.fillWidth: true
|
||
|
Layout.preferredWidth: root.buyEnabled ? layout.width / layout.children.length : 0
|
||
|
title: qsTr("Ways to buy crypto")
|
||
|
subTitle: qsTr("Via card or bank transfer")
|
||
|
image: Theme.png("wallet/wallet-green")
|
||
|
closeEnabled: root.closeEnabled
|
||
|
visible: Layout.preferredWidth > 0
|
||
|
opacity: root.buyEnabled ? 1 : 0
|
||
|
|
||
|
onClose: root.closeBuy()
|
||
|
onClicked: root.buyClicked()
|
||
|
|
||
|
Behavior on opacity {
|
||
|
NumberAnimation { duration: 200; easing.type: Easing.InOutQuad }
|
||
|
}
|
||
|
Behavior on Layout.preferredWidth {
|
||
|
NumberAnimation { duration: 200; easing.type: Easing.InOutQuad }
|
||
|
}
|
||
|
}
|
||
|
BannerCard {
|
||
|
id: receiveCard
|
||
|
objectName: "receiveCard"
|
||
|
Layout.fillWidth: true
|
||
|
Layout.preferredWidth: root.receiveEnabled ? layout.width / layout.children.length : 0
|
||
|
title: qsTr("Receive crypto")
|
||
|
subTitle: qsTr("Deposit to your Wallet address")
|
||
|
image: Theme.png("wallet/flying-coin")
|
||
|
closeEnabled: root.closeEnabled
|
||
|
visible: Layout.preferredWidth > 0
|
||
|
opacity: root.receiveEnabled ? 1 : 0
|
||
|
|
||
|
onClose: root.closeReceive()
|
||
|
onClicked: root.receiveClicked()
|
||
|
|
||
|
Behavior on opacity {
|
||
|
NumberAnimation { duration: 200; easing.type: Easing.InOutQuad }
|
||
|
}
|
||
|
Behavior on Layout.preferredWidth {
|
||
|
NumberAnimation { duration: 200; easing.type: Easing.InOutQuad }
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|