mirror of
https://github.com/status-im/status-desktop.git
synced 2025-01-09 05:52:41 +00:00
9202cce3f5
Switch the activity filter to use the new session-based API that deliver incremental updates to the current filter. Drop the old quick win listening for individual change events and use the unified API instead. The new transactions (on-top) trigger the old "new transactions" buttons that trigger reset of the current filter and the top new transacitons highlighted. Highlight mixed changes (not new on top) as they come in Highlight new changes on filter reset Closes #12120
197 lines
6.9 KiB
QML
197 lines
6.9 KiB
QML
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
|