Changed listener for update of transactions list.
M committed
Dec 4, 2020 at 21:09 UTC
cbf265bd92568a11e37c4a8c2bb28f29782b9ca6
1 file changed
+40
-34
lib/view_model/dashboard/dashboard_view_model.dart
+40
-34
@@ -87,38 +87,45 @@ abstract class DashboardViewModelBase with Store {
87
subname = _wallet.account?.label;
88
89
_onMoneroAccountChangeReaction = reaction((_) => _wallet.account,
90
- (Account account) => _onMoneroAccountChange(_wallet));
90
+ (Account account) => _onMoneroAccountChange(_wallet));
91
92
- _onMoneroBalanceChangeReaction = reaction((_) =>
93
- _wallet.balance, (MoneroBalance balance) =>
94
- _onMoneroTransactionsUpdate(_wallet));
92
+ _onMoneroBalanceChangeReaction = reaction((_) => _wallet.balance,
93
+ (MoneroBalance balance) => _onMoneroTransactionsUpdate(_wallet));
94
95
final _accountTransactions = _wallet
96
.transactionHistory.transactions.values
98
- .where((tx) => tx.accountIndex == _wallet.account.id).toList();
97
+ .where((tx) => tx.accountIndex == _wallet.account.id)
98
+ .toList();
99
100
- transactions = ObservableList.of(_accountTransactions
101
- .map((transaction) => TransactionListItem(
102
- transaction: transaction,
103
- balanceViewModel: balanceViewModel,
104
- settingsStore: appStore.settingsStore)));
100
+ transactions = ObservableList.of(_accountTransactions.map((transaction) =>
101
+ TransactionListItem(
102
+ transaction: transaction,
103
+ balanceViewModel: balanceViewModel,
104
+ settingsStore: appStore.settingsStore)));
105
} else {
106
transactions = ObservableList.of(wallet
107
.transactionHistory.transactions.values
108
.map((transaction) => TransactionListItem(
109
- transaction: transaction,
110
- balanceViewModel: balanceViewModel,
111
- settingsStore: appStore.settingsStore)));
112
-
113
- // FIXME: fixme
114
- connectMapToListWithTransform(
115
- appStore.wallet.transactionHistory.transactions,
116
- transactions,
117
- (TransactionInfo val) => TransactionListItem(
118
- transaction: val,
109
+ transaction: transaction,
110
balanceViewModel: balanceViewModel,
120
- settingsStore: appStore.settingsStore));
111
+ settingsStore: appStore.settingsStore)));
112
}
113
+
114
+ connectMapToListWithTransform(
115
+ appStore.wallet.transactionHistory.transactions,
116
+ transactions,
117
+ (TransactionInfo val) => TransactionListItem(
118
+ transaction: val,
119
+ balanceViewModel: balanceViewModel,
120
+ settingsStore: appStore.settingsStore),
121
+ filter: (TransactionInfo tx) {
122
+ final wallet = _wallet;
123
+ if (tx is MoneroTransactionInfo && wallet is MoneroWallet) {
124
+ return tx.accountIndex == wallet.account.id;
125
+ }
126
+
127
+ return true;
128
+ });
129
}
130
131
@observable
@@ -214,18 +221,17 @@ abstract class DashboardViewModelBase with Store {
221
_onMoneroBalanceChangeReaction?.reaction?.dispose();
222
223
_onMoneroAccountChangeReaction = reaction((_) => wallet.account,
217
- (Account account) => _onMoneroAccountChange(wallet));
224
+ (Account account) => _onMoneroAccountChange(wallet));
225
219
- _onMoneroBalanceChangeReaction = reaction((_) =>
220
- wallet.balance, (MoneroBalance balance) =>
221
- _onMoneroTransactionsUpdate(wallet));
226
+ _onMoneroBalanceChangeReaction = reaction((_) => wallet.balance,
227
+ (MoneroBalance balance) => _onMoneroTransactionsUpdate(wallet));
228
229
_onMoneroTransactionsUpdate(wallet);
230
} else {
231
transactions.clear();
232
233
transactions.addAll(wallet.transactionHistory.transactions.values.map(
228
- (transaction) => TransactionListItem(
234
+ (transaction) => TransactionListItem(
235
transaction: transaction,
236
balanceViewModel: balanceViewModel,
237
settingsStore: appStore.settingsStore)));
@@ -242,14 +248,14 @@ abstract class DashboardViewModelBase with Store {
248
void _onMoneroTransactionsUpdate(MoneroWallet wallet) {
249
transactions.clear();
250
245
- final _accountTransactions = wallet
246
- .transactionHistory.transactions.values
247
- .where((tx) => tx.accountIndex == wallet.account.id).toList();
251
+ final _accountTransactions = wallet.transactionHistory.transactions.values
252
+ .where((tx) => tx.accountIndex == wallet.account.id)
253
+ .toList();
254
249
- transactions.addAll(_accountTransactions
250
- .map((transaction) => TransactionListItem(
251
- transaction: transaction,
252
- balanceViewModel: balanceViewModel,
253
- settingsStore: appStore.settingsStore)));
255
+ transactions.addAll(_accountTransactions.map((transaction) =>
256
+ TransactionListItem(
257
+ transaction: transaction,
258
+ balanceViewModel: balanceViewModel,
259
+ settingsStore: appStore.settingsStore)));
260
}
261
}