stores: walletSection usages moved from shared/RootStore to wallet/RootStore

This commit is contained in:
Michał Cieślak 2024-10-02 09:50:10 +02:00 committed by Michał
parent 3c6ea3be43
commit 1b3a4cf955
5 changed files with 64 additions and 60 deletions

View File

@ -118,7 +118,7 @@ Item {
RootStore.lastReloadTimestamp * 1000) : ""
tooltip.text: qsTr("Last refreshed %1").arg(lastReloadTimeFormated)
onClicked: RootStore.walletSectionInst.reloadAccountTokens()
onClicked: RootStore.reloadAccountTokens()
Timer {
id: throttleTimer

View File

@ -34,6 +34,8 @@ QtObject {
readonly property string signingPhrase: walletSectionInst.signingPhrase
readonly property string mnemonicBackedUp: walletSectionInst.isMnemonicBackedUp
readonly property var transactionActivityStatus: walletSectionInst.activityController.status
/* This property holds networks currently selected in the Wallet Main layout */
readonly property var networkFilters: networksModule.enabledChainIds
readonly property var networkFiltersArray: networkFilters.split(":").filter(Boolean).map(Number)
@ -110,6 +112,11 @@ QtObject {
readonly property bool isAccountTokensReloading: walletSectionInst.isAccountTokensReloading
readonly property double lastReloadTimestamp: walletSectionInst.lastReloadTimestamp
readonly property var historyTransactions: walletSectionInst.activityController.model
readonly property bool loadingHistoryTransactions: walletSectionInst.activityController.status.loadingData
readonly property bool newDataAvailable: walletSectionInst.activityController.status.newDataAvailable
readonly property bool isNonArchivalNode: walletSectionInst.isNonArchivalNode
signal savedAddressAddedOrUpdated(added: bool, name: string, address: string, errorMsg: string)
signal savedAddressDeleted(name: string, address: string, errorMsg: string)
@ -585,4 +592,38 @@ QtObject {
}
return undefined
}
function resetActivityData() {
root.walletSectionInst.activityController.resetActivityData()
}
function updateTransactionFilterIfDirty() {
if (root.transactionActivityStatus.isFilterDirty)
root.walletSectionInst.activityController.updateFilter()
}
function getTxDetails() {
return root.walletSectionInst.activityDetailsController.activityDetails
}
function fetchTxDetails(txID) {
root.walletSectionInst.activityController.fetchTxDetails(txID)
root.walletSectionInst.activityDetailsController.fetchExtraTxDetails()
}
function fetchDecodedTxData(txHash, input) {
root.walletSectionInst.fetchDecodedTxData(txHash, input)
}
function fetchMoreTransactions() {
if (root.historyTransactions.count === 0
|| !root.historyTransactions.hasMore
|| root.loadingHistoryTransactions)
return
root.walletSectionInst.activityController.loadMoreItems()
}
function reloadAccountTokens() {
root.walletSectionInst.reloadAccountTokens()
}
}

View File

@ -68,7 +68,7 @@ Item {
onDetailsChanged: {
if (!!d.details && !!d.details.input && d.details.input !== "0x") {
d.loadingInputDate = true
root.rootStore.fetchDecodedTxData(d.details.txHashOut, d.details.input)
WalletStores.RootStore.fetchDecodedTxData(d.details.txHashOut, d.details.input)
}
}
@ -128,7 +128,7 @@ Item {
}
Connections {
target: root.rootStore.walletSectionInst
target: WalletStores.RootStore.walletSectionInst
function onTxDecoded(txHash: string, dataDecoded: string) {
if (!d.isTransactionValid || (d.isDetailsValid && txHash !== d.details.txHashOut))
return

View File

@ -11,7 +11,6 @@ QtObject {
property var profileSectionModuleInst: profileSectionModule
property var privacyModule: profileSectionModuleInst.privacyModule
property var userProfileInst: !!Global.userProfile? Global.userProfile : null
property var walletSectionInst: Global.appIsReady && !!walletSection? walletSection : null
property var appSettingsInst: Global.appIsReady && !!appSettings? appSettings : null
property var accountSensitiveSettings: Global.appIsReady && !!localAccountSensitiveSettings? localAccountSensitiveSettings : null
property real volume: !!appSettingsInst ? appSettingsInst.volume * 0.01 : 0.5
@ -23,18 +22,7 @@ QtObject {
property CurrenciesStore currencyStore: CurrenciesStore {}
readonly property var transactionActivityStatus: Global.appIsReady ? walletSectionInst.activityController.status : null
property var historyTransactions: Global.appIsReady? walletSectionInst.activityController.model : null
readonly property bool loadingHistoryTransactions: Global.appIsReady && walletSectionInst.activityController.status.loadingData
readonly property bool newDataAvailable: Global.appIsReady && walletSectionInst.activityController.status.newDataAvailable
property bool isNonArchivalNode: Global.appIsReady && walletSectionInst.isNonArchivalNode
property TokenMarketValuesStore marketValueStore: TokenMarketValuesStore{}
function resetActivityData() {
walletSectionInst.activityController.resetActivityData()
}
property TokenMarketValuesStore marketValueStore: TokenMarketValuesStore {}
property var flatNetworks: networksModule.flatNetworks
@ -49,30 +37,4 @@ QtObject {
function getPasswordStrengthScore(password) {
return root.privacyModule.getPasswordStrengthScore(password);
}
function fetchMoreTransactions() {
if (RootStore.historyTransactions.count === 0
|| !RootStore.historyTransactions.hasMore
|| loadingHistoryTransactions)
return
walletSectionInst.activityController.loadMoreItems()
}
function updateTransactionFilterIfDirty() {
if (transactionActivityStatus.isFilterDirty)
walletSectionInst.activityController.updateFilter()
}
function fetchDecodedTxData(txHash, input) {
walletSectionInst.fetchDecodedTxData(txHash, input)
}
function fetchTxDetails(txID) {
walletSectionInst.activityController.fetchTxDetails(txID)
walletSectionInst.activityDetailsController.fetchExtraTxDetails()
}
function getTxDetails() {
return walletSectionInst.activityDetailsController.activityDetails
}
}

View File

@ -57,7 +57,7 @@ ColumnLayout {
}
Component.onCompleted: {
if (RootStore.transactionActivityStatus.isFilterDirty) {
if (root.walletRootStore.transactionActivityStatus.isFilterDirty) {
root.walletRootStore.currentActivityFiltersStore.applyAllFilters()
}
@ -66,10 +66,10 @@ ColumnLayout {
}
Connections {
target: RootStore.transactionActivityStatus
target: root.walletRootStore.transactionActivityStatus
enabled: root.visible
function onIsFilterDirtyChanged() {
RootStore.updateTransactionFilterIfDirty()
root.walletRootStore.updateTransactionFilterIfDirty()
}
function onFilterChainsChanged() {
root.walletRootStore.currentActivityFiltersStore.updateCollectiblesModel()
@ -89,7 +89,7 @@ ColumnLayout {
QtObject {
id: d
readonly property bool isInitialLoading: RootStore.loadingHistoryTransactions && transactionListRoot.count === 0
readonly property bool isInitialLoading: root.walletRootStore.loadingHistoryTransactions && transactionListRoot.count === 0
readonly property int loadingSectionWidth: 56
@ -101,7 +101,7 @@ ColumnLayout {
function openTxDetails(txID) {
// Prevent opening details when loading, that will invalidate the model data
if (RootStore.loadingHistoryTransactions) {
if (root.walletRootStore.loadingHistoryTransactions) {
return false
}
@ -148,7 +148,7 @@ ColumnLayout {
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop
Layout.topMargin: root.firstItemOffset
visible: RootStore.isNonArchivalNode
visible: root.walletRootStore.isNonArchivalNode
text: qsTr("Status Desktop is connected to a non-archival node. Transaction history may be incomplete.")
font.pixelSize: Style.current.primaryTextFontSize
color: Style.current.danger
@ -204,7 +204,7 @@ ColumnLayout {
if (d.openTxDetails(d.openTxDetailsHash)) {
d.openTxDetailsHash = ""
} else {
RootStore.fetchMoreTransactions()
root.walletRootStore.fetchMoreTransactions()
}
}
}
@ -212,7 +212,7 @@ ColumnLayout {
model: SortFilterProxyModel {
id: txModel
sourceModel: RootStore.historyTransactions
sourceModel: root.walletRootStore.historyTransactions
// LocaleUtils is not accessable from inside expression, but local function works
property var daysTo: (d1, d2) => LocaleUtils.daysTo(d1, d2)
@ -267,16 +267,17 @@ ColumnLayout {
}
Connections {
target: RootStore
target: root.walletRootStore
function onLoadingHistoryTransactionsChanged() {
// Calling timer instead directly to not cause binding loop
if (!RootStore.loadingHistoryTransactions)
if (!root.walletRootStore.loadingHistoryTransactions)
fetchMoreTimer.start()
}
}
function tryFetchMoreTransactions() {
if (d.isInitialLoading || !footerItem || !RootStore.historyTransactions.hasMore)
if (d.isInitialLoading || !footerItem || !root.walletRootStore.historyTransactions.hasMore)
return
const footerYPosition = footerItem.height / contentHeight
if (footerYPosition >= 1.0) {
@ -285,7 +286,7 @@ ColumnLayout {
// On startup, first loaded ListView will have heightRatio equal 0
if (footerYPosition + visibleArea.yPosition + visibleArea.heightRatio > 1.0) {
RootStore.fetchMoreTransactions()
root.walletRootStore.fetchMoreTransactions()
}
}
@ -304,8 +305,8 @@ ColumnLayout {
text: qsTr("New transactions")
visible: RootStore.newDataAvailable && !RootStore.loadingHistoryTransactions
onClicked: RootStore.resetActivityData()
visible: root.walletRootStore.newDataAvailable && !root.walletRootStore.loadingHistoryTransactions
onClicked: root.walletRootStore.resetActivityData()
icon.name: "arrow-up"
@ -389,8 +390,8 @@ ColumnLayout {
root.walletRootStore.addressWasShown(delegateMenu.transaction.recipient)
}
RootStore.fetchTxDetails(delegateMenu.transaction.id)
let detailsObj = RootStore.getTxDetails()
root.walletRootStore.fetchTxDetails(delegateMenu.transaction.id)
let detailsObj = root.walletRootStore.getTxDetails()
let detailsString = delegateMenu.transactionDelegate.getDetailsString(detailsObj)
ClipboardUtils.setText(detailsString)
}
@ -516,7 +517,7 @@ ColumnLayout {
id: footerComp
ColumnLayout {
id: footerColumn
readonly property bool allActivityLoaded: !RootStore.historyTransactions.hasMore && transactionListRoot.count !== 0
readonly property bool allActivityLoaded: !root.walletRootStore.historyTransactions.hasMore && transactionListRoot.count !== 0
width: root.width
spacing: d.isInitialLoading ? 6 : 12
@ -544,7 +545,7 @@ ColumnLayout {
const delegateHeight = 64 + footerColumn.spacing
if (d.isInitialLoading) {
return Math.floor(transactionListRoot.height / delegateHeight)
} else if (RootStore.historyTransactions.hasMore) {
} else if (root.walletRootStore.historyTransactions.hasMore) {
return Math.max(3, Math.floor(transactionListRoot.height / delegateHeight) - 3)
}
}