dev
dart 71 lines 2.71 KB
Raw
1 import 'package:cake_wallet/src/screens/transaction_details/blockexplorer_list_item.dart';
2 import 'package:cake_wallet/src/screens/transaction_details/textfield_list_item.dart';
3 import 'package:cake_wallet/src/screens/transaction_details/widgets/textfield_list_row.dart';
4 import 'package:cake_wallet/src/screens/unspent_coins/widgets/unspent_coins_switch_row.dart';
5 import 'package:cake_wallet/src/widgets/standard_list.dart';
6 import 'package:cake_wallet/utils/show_bar.dart';
7 import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_details_view_model.dart';
8 import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_switch_item.dart';
9 import 'package:flutter/material.dart';
10 import 'package:cake_wallet/src/widgets/list_row.dart';
11 import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
12 import 'package:cake_wallet/src/screens/base_page.dart';
13 import 'package:flutter/services.dart';
14 import 'package:flutter_mobx/flutter_mobx.dart';
15 import 'package:cake_wallet/generated/i18n.dart';
16
17 class UnspentCoinsDetailsPage extends BasePage {
18 UnspentCoinsDetailsPage({required this.unspentCoinsDetailsViewModel});
19
20 @override
21 String get title => S.current.unspent_coins_details_title;
22
23 final UnspentCoinsDetailsViewModel unspentCoinsDetailsViewModel;
24
25 @override
26 Widget body(BuildContext context) {
27 return SectionStandardList(
28 sectionCount: 1,
29 itemCounter: (int _) => unspentCoinsDetailsViewModel.items.length,
30 itemBuilder: (__, index) {
31 final item = unspentCoinsDetailsViewModel.items[index];
32
33 if (item is StandartListItem) {
34 return GestureDetector(
35 onTap: () {
36 Clipboard.setData(ClipboardData(text: item.value));
37 showBar<void>(context, S.of(context).transaction_details_copied(item.title));
38 },
39 child: ListRow(title: '${item.title}:', value: item.value),
40 );
41 }
42
43 if (item is TextFieldListItem) {
44 return TextFieldListRow(
45 title: item.title,
46 value: item.value,
47 onSubmitted: item.onSubmitted,
48 );
49 }
50
51 if (item is UnspentCoinsSwitchItem) {
52 return Observer(
53 builder: (_) => UnspentCoinsSwitchRow(
54 title: item.title,
55 switchValue: item.switchValue(),
56 onSwitchValueChange: item.onSwitchValueChange,
57 ),
58 );
59 }
60
61 if (item is BlockExplorerListItem) {
62 return GestureDetector(
63 onTap: item.onTap,
64 child: ListRow(title: '${item.title}:', value: item.value),
65 );
66 }
67
68 return Container();
69 });
70 }
71 }