cake_wallet/lib/src/screens/receive/widgets/address_cell.dart

75 lines
2.1 KiB
Dart
Raw Normal View History

2020-06-20 07:10:00 +00:00
import 'package:flutter/material.dart';
import 'package:flutter_slidable/flutter_slidable.dart';
import 'package:cake_wallet/generated/i18n.dart';
2020-07-06 20:09:03 +00:00
import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_item.dart';
2020-06-20 07:10:00 +00:00
class AddressCell extends StatelessWidget {
2020-07-06 20:09:03 +00:00
factory AddressCell.fromItem(WalletAddressListItem item,
2020-06-20 07:10:00 +00:00
{@required bool isCurrent,
@required Color backgroundColor,
@required Color textColor,
2020-06-20 07:10:00 +00:00
Function(String) onTap,
Function() onEdit}) =>
AddressCell(
address: item.address,
name: item.name,
isCurrent: isCurrent,
backgroundColor: backgroundColor,
textColor: textColor,
2020-06-20 07:10:00 +00:00
onTap: onTap,
onEdit: onEdit);
AddressCell(
{@required this.address,
@required this.name,
@required this.isCurrent,
@required this.backgroundColor,
@required this.textColor,
2020-06-20 07:10:00 +00:00
this.onTap,
this.onEdit});
final String address;
final String name;
final bool isCurrent;
final Color backgroundColor;
final Color textColor;
2020-06-20 07:10:00 +00:00
final Function(String) onTap;
final Function() onEdit;
String get label => name ?? address;
@override
Widget build(BuildContext context) {
final Widget cell = InkWell(
onTap: () => onTap(address),
child: Container(
color: backgroundColor,
2020-06-20 07:10:00 +00:00
padding: EdgeInsets.only(left: 24, right: 24, top: 28, bottom: 28),
child: Text(
name ?? address,
maxLines: 1,
overflow: TextOverflow.ellipsis,
2020-06-20 07:10:00 +00:00
style: TextStyle(
fontSize: 18,
2020-07-06 20:09:03 +00:00
fontWeight: FontWeight.w600,
color: textColor,
2020-06-20 07:10:00 +00:00
),
),
));
return isCurrent
? cell
: Slidable(
key: Key(address),
actionPane: SlidableDrawerActionPane(),
child: cell,
secondaryActions: <Widget>[
IconSlideAction(
caption: S.of(context).edit,
color: Colors.blue,
2020-06-20 07:10:00 +00:00
icon: Icons.edit,
onTap: () => onEdit?.call())
]);
}
}