feat: Allow tap to copy on exchange url and add launch icon for launch. (#2262)

David Adegoke committed May 13, 2025 at 13:01 UTC ca8dbf3c81acb53824193030fa1851c6af9cbdcd
2 files changed +26 -3
lib/src/screens/trade_details/trade_details_page.dart
+25 -2
@@ -9,6 +9,7 @@ import 'package:cake_wallet/src/widgets/list_row.dart';
9 import 'package:cake_wallet/src/widgets/standard_list.dart';
10 import 'package:cake_wallet/src/widgets/standard_list_card.dart';
11 import 'package:cake_wallet/src/widgets/standard_list_status_row.dart';
12 +import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
13 import 'package:cake_wallet/utils/show_bar.dart';
14 import 'package:cake_wallet/view_model/trade_details_view_model.dart';
15 import 'package:flutter/material.dart';
@@ -59,9 +60,31 @@ class TradeDetailsPageBodyState extends State<TradeDetailsPageBody> {
60 final item = tradeDetailsViewModel.items[index];
61
62 if (item is TrackTradeListItem)
62 - return GestureDetector(
63 + return ListRow(
64 + title: '${item.title}',
65 + value: '${item.value}',
66 + textWidget: GestureDetector(
67 + onTap: () {
68 + Clipboard.setData(ClipboardData(text: '${item.value}'));
69 + showBar<void>(context, S.of(context).copied_to_clipboard);
70 + },
71 + child: Text(
72 + '${item.value}',
73 + style: TextStyle(
74 + fontSize: 16,
75 + fontWeight: FontWeight.w500,
76 + color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
77 + ),
78 + ),
79 + ),
80 + image: GestureDetector(
81 onTap: item.onTap,
64 - child: ListRow(title: '${item.title}', value: '${item.value}'));
82 + child: Icon(
83 + Icons.launch_rounded,
84 + color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
85 + ),
86 + ),
87 + );
88
89 if (item is DetailsListStatusItem)
90 return StandardListStatusRow(title: item.title, value: item.value);
lib/src/widgets/list_row.dart
+1 -1
@@ -20,7 +20,7 @@ class ListRow extends StatelessWidget {
20 final String value;
21 final double titleFontSize;
22 final double valueFontSize;
23 - final Image? image;
23 + final Widget? image;
24 final EdgeInsetsGeometry? padding;
25 final Color? color;
26 final Color? hintTextColor;