import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Layouts 1.15 import StatusQ.Core 0.1 import Storybook 1.0 import utils 1.0 import shared.controls 1.0 SplitView { id: root // mirrors ActivityEntry defined in src/app/modules/main/wallet_section/activity/entry.nim readonly property QtObject mockupModelData: QtObject { readonly property int timestamp: Date.now() / 1000 readonly property int status: ctrlStatus.currentValue readonly property double amount: 123.45 readonly property double inAmount: amount readonly property double outAmount: amount readonly property string symbol: "SNT" readonly property string inSymbol: symbol readonly property string outSymbol: symbol readonly property bool isMultiTransaction: ctrlMultiTrans.checked readonly property int txType: ctrlType.currentValue readonly property string sender: "0xfB8131c260749c7835a08ccBdb64728De432858E" readonly property string recipient: "0x3fb81384583b3910BB14Cc72582E8e8a56E83ae9" readonly property bool isNFT: ctrlIsNft.checked readonly property bool isCommunityAssetViaAirdrop: isCommunityAssetViaAirdrop.checked readonly property string communityName: "Doodles" readonly property string communityImageUrl: Style.png("collectibles/HappyMeow") readonly property string tokenID: "4981676894159712808201908443964193325271219637660871887967796332739046670337" readonly property string tokenAddress: "0xdeadbeef" readonly property string tokenInAddress: "0xdeadbeef-00" readonly property string tokenOutAddress: "0xdeadbeef-00" readonly property string nftName: "Happy Meow NFT" readonly property string nftImageUrl: Style.png("collectibles/HappyMeow") readonly property string chainId: "NETWORKID" readonly property string chainIdIn: "NETWORKID-IN" readonly property string chainIdOut: "NETWORKID-OUT" readonly property bool highlight: _highlight function doneHighlighting() { _highlight = false } property bool _highlight: false } SplitView { orientation: Qt.Vertical SplitView.fillWidth: true Item { SplitView.fillWidth: true SplitView.fillHeight: true Rectangle { anchors.fill: column anchors.margins: -1 border.color: "lightgray" } ColumnLayout { id: column anchors.centerIn: parent width: 600 TransactionDelegate { id: delegate Layout.fillWidth: true modelData: root.mockupModelData rootStore: QtObject { readonly property string currentCurrency: "EUR" function getFiatValue(cryptoValue, symbol) { return cryptoValue * 0.1; } function formatCurrencyAmount(cryptoValue, symbol) { return "%L1 %2".arg(cryptoValue).arg(symbol) } function getNetworkFullName(chainId) { return chainId } function getNetworkColor(chainId) { return "pink" } } walletRootStore: QtObject { function getNameForAddress(address) { return "NAMEFOR: %1".arg(address) } } } } } LogsAndControlsPanel { SplitView.minimumHeight: 100 SplitView.preferredHeight: 200 SplitView.fillWidth: true } } Pane { SplitView.minimumWidth: 300 SplitView.preferredWidth: 300 ColumnLayout { CheckBox { text: "Is loading" checked: delegate.loading onToggled: delegate.loading = checked } CheckBox { text: "Is activity details header" readonly property string headerState: "header" checked: delegate.state === headerState onToggled: delegate.state = checked ? headerState : "" } CheckBox { id: ctrlIsNft text: "Is NFT" } CheckBox { id: isCommunityAssetViaAirdrop checked: true text: "Is Community Asset Via Airdrop" } Label { Layout.topMargin: 10 Layout.fillWidth: true text: "Transaction type:" } ComboBox { id: ctrlType Layout.fillWidth: true textRole: "name" valueRole: "type" model: ListModel { ListElement { name: "Send"; type: Constants.TransactionType.Send } ListElement { name: "Receive"; type: Constants.TransactionType.Receive } ListElement { name: "Buy"; type: Constants.TransactionType.Buy } ListElement { name: "Swap"; type: Constants.TransactionType.Swap } ListElement { name: "Bridge"; type: Constants.TransactionType.Bridge } ListElement { name: "ContractDeployment"; type: Constants.TransactionType.ContractDeployment } ListElement { name: "Mint"; type: Constants.TransactionType.Mint } ListElement { name: "Sell"; type: Constants.TransactionType.Sell } ListElement { name: "Destroy"; type: Constants.TransactionType.Destroy } } } Label { Layout.topMargin: 10 Layout.fillWidth: true text: "Transaction status:" } ComboBox { id: ctrlStatus Layout.fillWidth: true textRole: "name" valueRole: "status" model: ListModel { ListElement { name: "Failed"; status: Constants.TransactionStatus.Failed } ListElement { name: "Pending"; status: Constants.TransactionStatus.Pending } ListElement { name: "Complete"; status: Constants.TransactionStatus.Complete } ListElement { name: "Finalised"; status: Constants.TransactionStatus.Finalised } } } Switch { id: ctrlMultiTrans text: "Multi transaction" } Button { text: "New transaction" onClicked: { mockupModelData._highlight = true } } } } } // category: Wallet