status-desktop/ui/app/AppLayouts/Wallet/panels/WalletFooter.qml

104 lines
3.1 KiB
QML

import QtQuick 2.14
import QtQuick.Controls 2.14
import QtQuick.Layouts 1.13
import StatusQ.Popups 0.1
import StatusQ.Controls 0.1
import StatusQ.Core.Theme 0.1
import utils 1.0
import shared.controls 1.0
import "../controls"
import "../popups"
Rectangle {
id: root
property var walletStore
property var networkConnectionStore
// Community-token related properties:
required property bool isCommunityOwnershipTransfer
property string communityName: ""
signal launchShareAddressModal()
signal launchSendModal()
signal launchBridgeModal()
color: Theme.palette.statusAppLayout.rightPanelBackgroundColor
QtObject {
id: d
readonly property bool isCollectibleViewed: !!walletStore.currentViewedCollectible
readonly property bool isCollectibleSoulbound: d.isCollectibleViewed && walletStore.currentViewedCollectible.soulbound
}
StatusModalDivider {
anchors.top: parent.top
width: parent.width
}
RowLayout {
anchors.centerIn: parent
height: parent.height
spacing: Style.current.padding
StatusFlatButton {
objectName: "walletFooterSendButton"
icon.name: "send"
text: root.isCommunityOwnershipTransfer ? qsTr("Send Owner token to transfer %1 Community ownership").arg(root.communityName) : qsTr("Send")
interactive: !d.isCollectibleSoulbound && networkConnectionStore.sendBuyBridgeEnabled
onClicked: root.launchSendModal()
tooltip.text: d.isCollectibleSoulbound ? qsTr("Soulbound collectibles cannot be sent to another wallet") : networkConnectionStore.sendBuyBridgeToolTipText
visible: !walletStore.overview.isWatchOnlyAccount && walletStore.overview.canSend
}
StatusFlatButton {
icon.name: "receive"
text: qsTr("Receive")
onClicked: function () {
launchShareAddressModal()
}
}
StatusFlatButton {
icon.name: "bridge"
text: qsTr("Bridge")
interactive: networkConnectionStore.sendBuyBridgeEnabled
onClicked: root.launchBridgeModal()
tooltip.text: networkConnectionStore.sendBuyBridgeToolTipText
visible: !walletStore.overview.isWatchOnlyAccount && !root.isCommunityOwnershipTransfer && walletStore.overview.canSend
}
StatusFlatButton {
id: buySellBtn
visible: !root.isCommunityOwnershipTransfer
icon.name: "token"
text: qsTr("Buy")
onClicked: function () {
Global.openPopup(buySellModal);
}
}
StatusFlatButton {
id: swap
visible: !d.isCollectibleSoulbound && networkConnectionStore.sendBuyBridgeEnabled && Global.featureFlags.swapEnabled
icon.name: "swap"
text: qsTr("Swap")
onClicked: function () {
console.warn("TODO: launch swap modal...")
}
}
}
Component {
id: buySellModal
CryptoServicesModal {}
}
}