dev
dart 31 lines 900 Bytes
Raw
1 import 'package:cake_wallet/view_model/settings/settings_list_item.dart';
2
3 class ChoicesListItem<ItemType> extends SettingsListItem {
4 ChoicesListItem(
5 {required String title,
6 required this.selectedItem,
7 required this.items,
8 String Function(ItemType item)? displayItem,
9 void Function(ItemType item)? onItemSelected})
10 : _onItemSelected = onItemSelected,
11 _displayItem = displayItem,
12 super(title);
13
14 final ItemType selectedItem;
15 final List<ItemType> items;
16 final String Function(ItemType item)? _displayItem;
17 final void Function(ItemType item)? _onItemSelected;
18
19 void onItemSelected(dynamic item) {
20 if (item is ItemType) {
21 _onItemSelected?.call(item);
22 }
23 }
24
25 String displayItem(dynamic item) {
26 if (item is ItemType && _displayItem != null) {
27 return _displayItem!.call(item);
28 }
29 return item.toString();
30 }
31 }