cake_wallet/lib/src/screens/transaction_details/transaction_details_page.dart

112 lines
3.9 KiB
Dart
Raw Normal View History

2020-08-29 10:19:27 +00:00
2020-07-06 20:09:03 +00:00
import 'package:intl/intl.dart';
2020-01-04 19:31:52 +00:00
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:cake_wallet/generated/i18n.dart';
2020-07-06 20:09:03 +00:00
import 'package:cake_wallet/bitcoin/bitcoin_transaction_info.dart';
import 'package:cake_wallet/src/domain/monero/monero_transaction_info.dart';
2020-01-04 19:31:52 +00:00
import 'package:cake_wallet/src/domain/common/transaction_info.dart';
import 'package:cake_wallet/src/widgets/standart_list_row.dart';
2020-07-06 20:09:03 +00:00
import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
2020-01-04 19:31:52 +00:00
import 'package:cake_wallet/src/screens/base_page.dart';
class TransactionDetailsPage extends BasePage {
2020-07-06 20:09:03 +00:00
TransactionDetailsPage({this.transactionInfo}) : _items = [] {
// FIXME
// final _dateFormat = widget.settingsStore.getCurrentDateFormat(
// formatUSA: "yyyy.MM.dd, HH:mm", formatDefault: "dd.MM.yyyy, HH:mm");
final dateFormat = DateFormat('dd.MM.yyyy, HH:mm');
final tx = transactionInfo;
2020-05-12 12:04:54 +00:00
if (tx is MoneroTransactionInfo) {
final items = [
StandartListItem(
title: S.current.transaction_details_transaction_id, value: tx.id),
StandartListItem(
title: S.current.transaction_details_date,
2020-07-06 20:09:03 +00:00
value: dateFormat.format(tx.date)),
2020-05-12 12:04:54 +00:00
StandartListItem(
title: S.current.transaction_details_height, value: '${tx.height}'),
StandartListItem(
title: S.current.transaction_details_amount,
value: tx.amountFormatted())
];
2020-07-06 20:09:03 +00:00
// FIXME
// if (widget.settingsStore.shouldSaveRecipientAddress &&
// tx.recipientAddress != null) {
// items.add(StandartListItem(
// title: S.current.transaction_details_recipient_address,
// value: tx.recipientAddress));
// }
2020-05-12 12:04:54 +00:00
_items.addAll(items);
2020-01-04 19:31:52 +00:00
}
2020-07-06 20:09:03 +00:00
if (tx is BitcoinTransactionInfo) {
final items = [
StandartListItem(
title: S.current.transaction_details_transaction_id, value: tx.id),
StandartListItem(
title: S.current.transaction_details_date,
value: dateFormat.format(tx.date)),
2020-08-29 10:19:27 +00:00
StandartListItem(
title: 'Confirmations',
value: tx.confirmations?.toString()),
2020-07-06 20:09:03 +00:00
StandartListItem(
title: S.current.transaction_details_height, value: '${tx.height}'),
StandartListItem(
title: S.current.transaction_details_amount,
value: tx.amountFormatted())
];
2020-01-04 19:31:52 +00:00
2020-07-06 20:09:03 +00:00
_items.addAll(items);
}
2020-01-04 19:31:52 +00:00
}
@override
2020-07-06 20:09:03 +00:00
String get title => S.current.transaction_details_title;
2020-01-04 19:31:52 +00:00
2020-07-06 20:09:03 +00:00
final TransactionInfo transactionInfo;
2020-01-04 19:31:52 +00:00
2020-07-06 20:09:03 +00:00
final List<StandartListItem> _items;
2020-01-04 19:31:52 +00:00
@override
2020-07-06 20:09:03 +00:00
Widget body(BuildContext context) {
2020-01-04 19:31:52 +00:00
return Container(
child: ListView.separated(
separatorBuilder: (context, index) => Container(
2020-07-06 20:09:03 +00:00
height: 1,
padding: EdgeInsets.only(left: 24),
color: Theme.of(context).backgroundColor,
2020-07-06 20:09:03 +00:00
child: Container(
height: 1,
color: Theme.of(context).primaryTextTheme.title.backgroundColor,
2020-07-06 20:09:03 +00:00
),
),
2020-01-04 19:31:52 +00:00
itemCount: _items.length,
itemBuilder: (context, index) {
final item = _items[index];
final isDrawBottom = index == _items.length - 1 ? true : false;
2020-01-04 19:31:52 +00:00
return GestureDetector(
onTap: () {
Clipboard.setData(ClipboardData(text: item.value));
Scaffold.of(context).showSnackBar(
SnackBar(
content: Text(
S.of(context).transaction_details_copied(item.title)),
backgroundColor: Colors.green,
duration: Duration(milliseconds: 1500),
),
);
},
2020-07-06 20:09:03 +00:00
child: StandartListRow(
title: '${item.title}:',
value: item.value,
isDrawBottom: isDrawBottom),
2020-01-04 19:31:52 +00:00
);
}),
);
}
}