CAKE-222 | applied adaptive picker to send and settings pages
OleksandrSobol committed
Jan 8, 2021 at 18:49 UTC
39e91c74cda4abaf90ca59011a5263597782d729
6 files changed
+7
-17
lib/src/screens/send/send_page.dart
-1
@@ -751,7 +751,6 @@ class SendPage extends BasePage {
751
mainAxisAlignment: MainAxisAlignment.center,
752
onItemSelected: (TransactionPriority priority) =>
753
sendViewModel.setTransactionPriority(priority),
754
- isAlwaysShowScrollThumb: isShowScrollThumb,
754
),
755
context: context);
756
}
lib/src/screens/settings/settings.dart
-1
@@ -43,7 +43,6 @@ class SettingsPage extends BasePage {
43
return SettingsPickerCell<dynamic>(
44
title: item.title,
45
selectedItem: item.selectedItem(),
46
- isAlwaysShowScrollThumb: item.isAlwaysShowScrollThumb,
46
items: item.items,
47
onItemSelected: (dynamic value) => item.onItemSelected(value),
48
);
lib/src/screens/settings/widgets/settings_picker_cell.dart
+1
-4
@@ -9,8 +9,7 @@ class SettingsPickerCell<ItemType> extends StandardListRow {
9
{@required String title,
10
this.selectedItem,
11
this.items,
12
- this.onItemSelected,
13
- this.isAlwaysShowScrollThumb})
12
+ this.onItemSelected})
13
: super(
14
title: title,
15
isSelected: false,
@@ -24,7 +23,6 @@ class SettingsPickerCell<ItemType> extends StandardListRow {
23
selectedAtIndex: selectedAtIndex,
24
title: S.current.please_select,
25
mainAxisAlignment: MainAxisAlignment.center,
27
- isAlwaysShowScrollThumb: isAlwaysShowScrollThumb,
26
onItemSelected: (ItemType item) =>
27
onItemSelected?.call(item)));
28
});
@@ -32,7 +30,6 @@ class SettingsPickerCell<ItemType> extends StandardListRow {
30
final ItemType selectedItem;
31
final List<ItemType> items;
32
final void Function(ItemType item) onItemSelected;
35
- final bool isAlwaysShowScrollThumb;
33
34
@override
35
Widget buildTrailing(BuildContext context) {
lib/src/widgets/picker.dart
+5
-5
@@ -15,7 +15,6 @@ class Picker<Item extends Object> extends StatefulWidget {
15
this.description,
16
@required this.onItemSelected,
17
this.mainAxisAlignment = MainAxisAlignment.start,
18
- this.isAlwaysShowScrollThumb = false
18
});
19
20
final int selectedAtIndex;
@@ -25,7 +24,6 @@ class Picker<Item extends Object> extends StatefulWidget {
24
final String description;
25
final Function(Item) onItemSelected;
26
final MainAxisAlignment mainAxisAlignment;
28
- final bool isAlwaysShowScrollThumb;
27
28
@override
29
PickerState createState() => PickerState<Item>(items, images, onItemSelected);
@@ -56,6 +54,8 @@ class PickerState<Item> extends State<Picker> {
54
setState(() {});
55
});
56
57
+ final isShowScrollThumb = items != null ? items.length > 3 : false;
58
+
59
return AlertBackground(
60
child: Stack(
61
alignment: Alignment.center,
@@ -168,13 +168,13 @@ class PickerState<Item> extends State<Picker> {
168
)
169
)
170
: Offstage(),
171
- widget.isAlwaysShowScrollThumb
172
- ? CakeScrollbar(
171
+ isShowScrollThumb
172
+ ? CakeScrollbar(
173
backgroundHeight: backgroundHeight,
174
thumbHeight: thumbHeight,
175
fromTop: fromTop
176
)
177
- : Offstage(),
177
+ : Offstage(),
178
],
179
)
180
),
lib/view_model/settings/picker_list_item.dart
+1
-3
@@ -6,15 +6,13 @@ class PickerListItem<ItemType> extends SettingsListItem {
6
{@required String title,
7
@required this.selectedItem,
8
@required this.items,
9
- void Function(ItemType item) onItemSelected,
10
- this.isAlwaysShowScrollThumb = false})
9
+ void Function(ItemType item) onItemSelected})
10
: _onItemSelected = onItemSelected,
11
super(title);
12
13
final ItemType Function() selectedItem;
14
final List<ItemType> items;
15
final void Function(ItemType item) _onItemSelected;
17
- final bool isAlwaysShowScrollThumb;
16
17
void onItemSelected(dynamic item) {
18
if (item is ItemType) {
lib/view_model/settings/settings_view_model.dart
-3
@@ -55,7 +55,6 @@ abstract class SettingsViewModelBase with Store {
55
PickerListItem(
56
title: S.current.settings_currency,
57
items: FiatCurrency.all,
58
- isAlwaysShowScrollThumb: true,
58
selectedItem: () => fiatCurrency,
59
onItemSelected: (FiatCurrency currency) =>
60
setFiatCurrency(currency)),
@@ -63,8 +62,6 @@ abstract class SettingsViewModelBase with Store {
62
title: S.current.settings_fee_priority,
63
items: TransactionPriority.forWalletType(wallet.type),
64
selectedItem: () => transactionPriority,
66
- isAlwaysShowScrollThumb:
67
- TransactionPriority.forWalletType(wallet.type).length > 3,
65
onItemSelected: (TransactionPriority priority) =>
66
_settingsStore.transactionPriority = priority),
67
SwitcherListItem(