PR fixes
Serhii committed
Dec 26, 2022 at 20:41 UTC
ca79052914ca72253fd8e0e4b7b859f28ef96b71
5 files changed
+79
-88
lib/src/screens/dashboard/widgets/filter_widget.dart
+1
-1
@@ -82,7 +82,7 @@ class FilterWidget extends StatelessWidget {
82
final content = item.onChanged != null
83
? Observer(
84
builder: (_) => StandardCheckbox(
85
- value: item.value.value,
85
+ value: item.value(),
86
caption: item.caption,
87
gradientBackground: true,
88
borderColor: Theme.of(context).dividerColor,
lib/store/dashboard/trade_filter_store.dart
+45
-46
@@ -8,60 +8,61 @@ part'trade_filter_store.g.dart';
8
class TradeFilterStore = TradeFilterStoreBase with _$TradeFilterStore;
9
10
abstract class TradeFilterStoreBase with Store {
11
- TradeFilterStoreBase();
11
+ TradeFilterStoreBase() : displayXMRTO = true,
12
+ displayChangeNow = true,
13
+ displaySideShift = true,
14
+ displayMorphToken = true,
15
+ displaySimpleSwap = true;
16
13
- Observable<bool> displayXMRTO = Observable(true);
14
- Observable<bool> displayAllTrades = Observable(true);
15
- Observable<bool> displayChangeNow = Observable(true);
16
- Observable<bool> displaySideShift = Observable(true);
17
- Observable<bool> displayMorphToken = Observable(true);
18
- Observable<bool> displaySimpleSwap = Observable(true);
17
+ @observable
18
+ bool displayXMRTO;
19
+
20
+ @observable
21
+ bool displayChangeNow;
22
+
23
+ @observable
24
+ bool displaySideShift;
25
+
26
+ @observable
27
+ bool displayMorphToken;
28
+
29
+ @observable
30
+ bool displaySimpleSwap;
31
+
32
+ @computed
33
+ bool get displayAllTrades => displayChangeNow && displaySideShift && displaySimpleSwap;
34
35
@action
36
void toggleDisplayExchange(ExchangeProviderDescription provider) {
37
switch (provider) {
38
case ExchangeProviderDescription.changeNow:
24
- displayAllTrades.value = false;
25
- displayChangeNow.value = !displayChangeNow.value;
26
- if (displayChangeNow.value && displaySideShift.value && displaySimpleSwap.value) {
27
- displayAllTrades.value = true;
28
- }
39
+ displayChangeNow = !displayChangeNow;
40
break;
41
case ExchangeProviderDescription.sideShift:
31
- displayAllTrades.value = false;
32
- displaySideShift.value = !displaySideShift.value;
33
- if (displayChangeNow.value && displaySideShift.value && displaySimpleSwap.value) {
34
- displayAllTrades.value = true;
35
- }
42
+ displaySideShift = !displaySideShift;
43
break;
44
case ExchangeProviderDescription.simpleSwap:
38
- displayAllTrades.value = false;
39
- displaySimpleSwap.value = !displaySimpleSwap.value;
40
- if (displayChangeNow.value && displaySideShift.value && displaySimpleSwap.value) {
41
- displayAllTrades.value = true;
42
- }
45
+ displaySimpleSwap = !displaySimpleSwap;
46
break;
47
case ExchangeProviderDescription.xmrto:
45
- displayXMRTO.value = !displayXMRTO.value;
48
+ displayXMRTO = !displayXMRTO;
49
break;
50
case ExchangeProviderDescription.morphToken:
48
- displayMorphToken.value = !displayMorphToken.value;
51
+ displayMorphToken = !displayMorphToken;
52
break;
53
case ExchangeProviderDescription.all:
51
- displayAllTrades.value = !displayAllTrades.value;
52
- if (displayAllTrades.value) {
53
- displayChangeNow.value = true;
54
- displaySideShift.value = true;
55
- displayXMRTO.value = true;
56
- displayMorphToken.value = true;
57
- displaySimpleSwap.value = true;
58
- }
59
- if (!displayAllTrades.value) {
60
- displayChangeNow.value = false;
61
- displaySideShift.value = false;
62
- displayXMRTO.value = false;
63
- displayMorphToken.value = false;
64
- displaySimpleSwap.value = false;
54
+ if (displayAllTrades) {
55
+ displayChangeNow = false;
56
+ displaySideShift = false;
57
+ displayXMRTO = false;
58
+ displayMorphToken = false;
59
+ displaySimpleSwap = false;
60
+ } else {
61
+ displayChangeNow = true;
62
+ displaySideShift = true;
63
+ displayXMRTO = true;
64
+ displayMorphToken = true;
65
+ displaySimpleSwap = true;
66
}
67
break;
68
}
@@ -70,24 +71,22 @@ abstract class TradeFilterStoreBase with Store {
71
List<TradeListItem> filtered({required List<TradeListItem> trades, required WalletBase wallet}) {
72
final _trades =
73
trades.where((item) => item.trade.walletId == wallet.id).toList();
73
- final needToFilter = !displayChangeNow.value || !displaySideShift.value
74
- || !displayXMRTO.value || !displayMorphToken.value
75
- || !displaySimpleSwap.value;
74
+ final needToFilter = !displayAllTrades;
75
76
return needToFilter
77
? _trades
78
.where((item) =>
80
- (displayXMRTO.value &&
79
+ (displayXMRTO &&
80
item.trade.provider == ExchangeProviderDescription.xmrto) ||
82
- (displaySideShift.value &&
81
+ (displaySideShift &&
82
item.trade.provider == ExchangeProviderDescription.sideShift) ||
84
- (displayChangeNow.value &&
83
+ (displayChangeNow &&
84
item.trade.provider ==
85
ExchangeProviderDescription.changeNow) ||
87
- (displayMorphToken.value &&
86
+ (displayMorphToken &&
87
item.trade.provider ==
88
ExchangeProviderDescription.morphToken)
90
- ||(displaySimpleSwap.value &&
89
+ ||(displaySimpleSwap &&
90
item.trade.provider ==
91
ExchangeProviderDescription.simpleSwap))
92
.toList()
lib/store/dashboard/transaction_filter_store.dart
+24
-32
@@ -10,11 +10,14 @@ class TransactionFilterStore = TransactionFilterStoreBase
10
with _$TransactionFilterStore;
11
12
abstract class TransactionFilterStoreBase with Store {
13
- TransactionFilterStoreBase();
13
+ TransactionFilterStoreBase() : displayIncoming = true,
14
+ displayOutgoing = true;
15
15
- Observable<bool> displayAll = Observable(true);
16
- Observable<bool> displayIncoming = Observable(true);
17
- Observable<bool> displayOutgoing = Observable(true);
16
+ @observable
17
+ bool displayIncoming;
18
+
19
+ @observable
20
+ bool displayOutgoing;
21
22
@observable
23
DateTime? startDate;
@@ -22,40 +25,30 @@ abstract class TransactionFilterStoreBase with Store {
25
@observable
26
DateTime? endDate;
27
28
+ @computed
29
+ bool get displayAll => displayIncoming && displayOutgoing;
30
+
31
@action
26
- void toggleIAll() {
27
- displayAll.value = (!displayAll.value);
28
- if (displayAll.value) {
29
- displayOutgoing.value = true;
30
- displayIncoming.value = true;
31
- }
32
- if (!displayAll.value) {
33
- displayOutgoing.value = false;
34
- displayIncoming.value = false;
32
+ void toggleAll() {
33
+ if (displayAll) {
34
+ displayOutgoing = false;
35
+ displayIncoming = false;
36
+ } else {
37
+ displayOutgoing = true;
38
+ displayIncoming = true;
39
}
40
}
41
42
+
43
@action
44
void toggleIncoming() {
40
- displayIncoming.value = (!displayIncoming.value);
41
- if (displayIncoming.value && displayOutgoing.value) {
42
- displayAll.value = true;
43
- }
44
- if (!displayIncoming.value || !displayOutgoing.value) {
45
- displayAll.value = false;
46
- }
45
+ displayIncoming = !displayIncoming;
46
}
47
48
49
@action
50
void toggleOutgoing() {
52
- displayOutgoing.value = (!displayOutgoing.value);
53
- if (displayIncoming.value && displayOutgoing.value) {
54
- displayAll.value = true;
55
- }
56
- if (!displayIncoming.value || !displayOutgoing.value) {
57
- displayAll.value = false;
58
- }
51
+ displayOutgoing = !displayOutgoing;
52
}
53
54
@action
@@ -66,8 +59,7 @@ abstract class TransactionFilterStoreBase with Store {
59
60
List<TransactionListItem> filtered({required List<TransactionListItem> transactions}) {
61
var _transactions = <TransactionListItem>[];
69
- final needToFilter = !displayOutgoing.value ||
70
- !displayIncoming.value ||
62
+ final needToFilter = !displayAll ||
63
(startDate != null && endDate != null);
64
65
if (needToFilter) {
@@ -79,11 +71,11 @@ abstract class TransactionFilterStoreBase with Store {
71
&& (endDate?.isAfter(item.transaction.date) ?? false);
72
}
73
82
- if (allowed && (!displayOutgoing.value || !displayIncoming.value)) {
83
- allowed = (displayOutgoing.value &&
74
+ if (allowed && (!displayAll)) {
75
+ allowed = (displayOutgoing &&
76
item.transaction.direction ==
77
TransactionDirection.outgoing) ||
86
- (displayIncoming.value &&
78
+ (displayIncoming &&
79
item.transaction.direction == TransactionDirection.incoming);
80
}
81
lib/view_model/dashboard/dashboard_view_model.dart
+8
-8
@@ -59,15 +59,15 @@ abstract class DashboardViewModelBase with Store {
59
filterItems = {
60
S.current.transactions: [
61
FilterItem(
62
- value: transactionFilterStore.displayAll,
62
+ value: () => transactionFilterStore.displayAll,
63
caption: S.current.all_transactions,
64
- onChanged: transactionFilterStore.toggleIAll),
64
+ onChanged: transactionFilterStore.toggleAll),
65
FilterItem(
66
- value: transactionFilterStore.displayIncoming,
66
+ value: () => transactionFilterStore.displayIncoming,
67
caption: S.current.incoming,
68
onChanged:transactionFilterStore.toggleIncoming),
69
FilterItem(
70
- value: transactionFilterStore.displayOutgoing,
70
+ value: () => transactionFilterStore.displayOutgoing,
71
caption: S.current.outgoing,
72
onChanged: transactionFilterStore.toggleOutgoing),
73
// FilterItem(
@@ -77,22 +77,22 @@ abstract class DashboardViewModelBase with Store {
77
],
78
S.current.trades: [
79
FilterItem(
80
- value: tradeFilterStore.displayAllTrades,
80
+ value: () => tradeFilterStore.displayAllTrades,
81
caption: S.current.all_trades,
82
onChanged: () => tradeFilterStore
83
.toggleDisplayExchange(ExchangeProviderDescription.all)),
84
FilterItem(
85
- value: tradeFilterStore.displayChangeNow,
85
+ value: () => tradeFilterStore.displayChangeNow,
86
caption: ExchangeProviderDescription.changeNow.title,
87
onChanged: () => tradeFilterStore
88
.toggleDisplayExchange(ExchangeProviderDescription.changeNow)),
89
FilterItem(
90
- value: tradeFilterStore.displaySideShift,
90
+ value: () => tradeFilterStore.displaySideShift,
91
caption: ExchangeProviderDescription.sideShift.title,
92
onChanged: () => tradeFilterStore
93
.toggleDisplayExchange(ExchangeProviderDescription.sideShift)),
94
FilterItem(
95
- value: tradeFilterStore.displaySimpleSwap,
95
+ value: () => tradeFilterStore.displaySimpleSwap,
96
caption: ExchangeProviderDescription.simpleSwap.title,
97
onChanged: () => tradeFilterStore
98
.toggleDisplayExchange(ExchangeProviderDescription.simpleSwap)),
lib/view_model/dashboard/filter_item.dart
+1
-1
@@ -6,7 +6,7 @@ class FilterItem {
6
required this.caption,
7
required this.onChanged});
8
9
- Observable<bool> value;
9
+ bool Function() value;
10
String caption;
11
Function onChanged;
12
}
\ No newline at end of file