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 }