Added ability to track trade in trade details page
Tanner Silva committed
Feb 1, 2021 at 19:36 UTC
e08f665e4a60e51392cc98a0f35d19d33018a2cd
3 files changed
+26
-6
lib/src/screens/trade_details/track_trade_list_item.dart
+2
-3
@@ -1,7 +1,6 @@
1
-import 'package:cake_wallet/src/widgets/standart_list_row.dart';
2
-import 'package:flutter/material.dart';
1
+import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
2
4
-class TrackTradeListItem extends StandartListRow {
3
+class TrackTradeListItem extends StandartListItem {
4
TrackTradeListItem({String title, String value, this.onTap})
5
: super(title: title, value: value);
6
final Function() onTap;
lib/src/screens/trade_details/trade_details_page.dart
+12
-1
@@ -8,6 +8,7 @@ import 'package:flutter_mobx/flutter_mobx.dart';
8
import 'package:cake_wallet/generated/i18n.dart';
9
import 'package:cake_wallet/src/screens/base_page.dart';
10
import 'package:cake_wallet/src/widgets/standart_list_row.dart';
11
+import 'package:cake_wallet/src/screens/trade_details/track_trade_list_item.dart';
12
13
class TradeDetailsPage extends BasePage {
14
TradeDetailsPage(this.tradeDetailsViewModel);
@@ -26,6 +27,16 @@ class TradeDetailsPage extends BasePage {
27
itemBuilder: (_, __, index) {
28
final item = tradeDetailsViewModel.items[index];
29
30
+ if (item is TrackTradeListItem) {
31
+ return GestureDetector(
32
+ onTap: item.onTap,
33
+ child: StandartListRow(
34
+ title: '${item.title}',
35
+ value: '${item.value}'
36
+ ));
37
+ }
38
+
39
+ if (item is SectionStandardListItem) {
40
return GestureDetector(
41
onTap: () {
42
Clipboard.setData(ClipboardData(text: '${item.value}'));
@@ -37,7 +48,7 @@ class TradeDetailsPage extends BasePage {
48
title: '${item.title}',
49
value: '${item.value}'
50
));
40
- });
51
+ }
52
});
53
}
54
}
\ No newline at end of file
lib/view_model/trade_details_view_model.dart
+12
-2
@@ -10,7 +10,8 @@ import 'package:hive/hive.dart';
10
import 'package:mobx/mobx.dart';
11
import 'package:cake_wallet/generated/i18n.dart';
12
import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
13
-
13
+import 'package:cake_wallet/src/screens/trade_details/track_trade_list_item.dart';
14
+import 'package:url_launcher/url_launcher.dart';
15
part 'trade_details_view_model.g.dart';
16
17
class TradeDetailsViewModel = TradeDetailsViewModelBase
@@ -90,6 +91,15 @@ abstract class TradeDetailsViewModelBase with Store {
91
value: trade.provider.toString()));
92
}
93
94
+ if (trade.provider.title == "ChangeNOW") {
95
+ items.add(TrackTradeListItem(
96
+ title: "Track",
97
+ value: "https://changenow.io/exchange/txs/${trade.id.toString()}",
98
+ onTap: () {
99
+ launch("https://www.blockchain.com/btc/tx/${tx.id}");
100
+ }));
101
+ }
102
+
103
if (trade.createdAt != null) {
104
items.add(StandartListItem(
105
title: S.current.trade_details_created_at,
@@ -102,4 +112,4 @@ abstract class TradeDetailsViewModelBase with Store {
112
value: '${trade.from.toString()} → ${trade.to.toString()}'));
113
}
114
}
105
-}
\ No newline at end of file
115
+}