CAKE-171 | fixed fiat amount displaying bug on transaction list; moved calculating price, type of fiat currency and display mode to transaction list item

OleksandrSobol committed Nov 12, 2020 at 11:32 UTC 7bbc14d5492ff0fb59170a857ef3b3b24649422a
3 files changed +19 -15
lib/reactions/on_current_fiat_change.dart
+1 -1
@@ -13,6 +13,6 @@ void startCurrentFiatChangeReaction(AppStore appStore, SettingsStore settingsSto
13 (_) => settingsStore.fiatCurrency, (FiatCurrency fiatCurrency) async {
14 final cryptoCurrency = appStore.wallet.currency;
15 fiatConversionStore.price = await FiatConversionService.fetchPrice(
16 - cryptoCurrency, settingsStore.fiatCurrency);
16 + cryptoCurrency, fiatCurrency);
17 });
18 }
\ No newline at end of file
lib/view_model/dashboard/dashboard_view_model.dart
+6 -9
@@ -78,9 +78,8 @@ abstract class DashboardViewModelBase with Store {
78 .transactionHistory.transactions.values
79 .map((transaction) => TransactionListItem(
80 transaction: transaction,
81 - price: price,
82 - fiatCurrency: appStore.settingsStore.fiatCurrency,
83 - displayMode: balanceDisplayMode)));
81 + balanceViewModel: balanceViewModel,
82 + settingsStore: appStore.settingsStore)));
83
84 _reaction = reaction((_) => appStore.wallet, _onWalletChange);
85 // FIXME: fixme
@@ -89,9 +88,8 @@ abstract class DashboardViewModelBase with Store {
88 transactions,
89 (TransactionInfo val) => TransactionListItem(
90 transaction: val,
92 - price: price,
93 - fiatCurrency: appStore.settingsStore.fiatCurrency,
94 - displayMode: balanceDisplayMode));
91 + balanceViewModel: balanceViewModel,
92 + settingsStore: appStore.settingsStore));
93
94 final _wallet = wallet;
95
@@ -185,8 +183,7 @@ abstract class DashboardViewModelBase with Store {
183 transactions.addAll(wallet.transactionHistory.transactions.values.map(
184 (transaction) => TransactionListItem(
185 transaction: transaction,
188 - price: price,
189 - fiatCurrency: appStore.settingsStore.fiatCurrency,
190 - displayMode: balanceDisplayMode)));
186 + balanceViewModel: balanceViewModel,
187 + settingsStore: appStore.settingsStore)));
188 }
189 }
lib/view_model/dashboard/transaction_list_item.dart
+12 -5
@@ -1,6 +1,7 @@
1 import 'package:cake_wallet/entities/balance_display_mode.dart';
2 import 'package:cake_wallet/entities/fiat_currency.dart';
3 import 'package:cake_wallet/entities/transaction_info.dart';
4 +import 'package:cake_wallet/store/settings_store.dart';
5 import 'package:cake_wallet/utils/mobx.dart';
6 import 'package:cake_wallet/view_model/dashboard/action_list_item.dart';
7 import 'package:cake_wallet/bitcoin/bitcoin_transaction_info.dart';
@@ -8,15 +9,21 @@ import 'package:cake_wallet/monero/monero_transaction_info.dart';
9 import 'package:cake_wallet/monero/monero_amount_format.dart';
10 import 'package:cake_wallet/bitcoin/bitcoin_amount_format.dart';
11 import 'package:cake_wallet/entities/calculate_fiat_amount_raw.dart';
12 +import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart';
13
14 class TransactionListItem extends ActionListItem with Keyable {
15 TransactionListItem(
14 - {this.transaction, this.price, this.fiatCurrency, this.displayMode});
16 + {this.transaction, this.balanceViewModel, this.settingsStore});
17
18 final TransactionInfo transaction;
17 - final double price;
18 - final FiatCurrency fiatCurrency;
19 - final BalanceDisplayMode displayMode;
19 + final BalanceViewModel balanceViewModel;
20 + final SettingsStore settingsStore;
21 +
22 + double get price => balanceViewModel.price;
23 +
24 + FiatCurrency get fiatCurrency => settingsStore.fiatCurrency;
25 +
26 + BalanceDisplayMode get displayMode => settingsStore.balanceDisplayMode;
27
28 @override
29 dynamic get keyIndex => transaction.id;
@@ -49,4 +56,4 @@ class TransactionListItem extends ActionListItem with Keyable {
56
57 @override
58 DateTime get date => transaction.date;
52 -}
59 +}
\ No newline at end of file