mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-11-01 18:07:44 +00:00
74 lines
2.1 KiB
Dart
74 lines
2.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_slidable/flutter_slidable.dart';
|
|
import 'package:cake_wallet/generated/i18n.dart';
|
|
import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_item.dart';
|
|
|
|
class AddressCell extends StatelessWidget {
|
|
factory AddressCell.fromItem(WalletAddressListItem item,
|
|
{@required bool isCurrent,
|
|
@required Color backgroundColor,
|
|
@required Color textColor,
|
|
Function(String) onTap,
|
|
Function() onEdit}) =>
|
|
AddressCell(
|
|
address: item.address,
|
|
name: item.name,
|
|
isCurrent: isCurrent,
|
|
backgroundColor: backgroundColor,
|
|
textColor: textColor,
|
|
onTap: onTap,
|
|
onEdit: onEdit);
|
|
|
|
AddressCell(
|
|
{@required this.address,
|
|
@required this.name,
|
|
@required this.isCurrent,
|
|
@required this.backgroundColor,
|
|
@required this.textColor,
|
|
this.onTap,
|
|
this.onEdit});
|
|
|
|
final String address;
|
|
final String name;
|
|
final bool isCurrent;
|
|
final Color backgroundColor;
|
|
final Color textColor;
|
|
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,
|
|
padding: EdgeInsets.only(left: 24, right: 24, top: 28, bottom: 28),
|
|
child: Text(
|
|
name ?? address,
|
|
maxLines: 1,
|
|
overflow: TextOverflow.ellipsis,
|
|
style: TextStyle(
|
|
fontSize: 18,
|
|
fontWeight: FontWeight.w600,
|
|
color: textColor,
|
|
),
|
|
),
|
|
));
|
|
|
|
return isCurrent
|
|
? cell
|
|
: Slidable(
|
|
key: Key(address),
|
|
actionPane: SlidableDrawerActionPane(),
|
|
child: cell,
|
|
secondaryActions: <Widget>[
|
|
IconSlideAction(
|
|
caption: S.of(context).edit,
|
|
color: Colors.blue,
|
|
icon: Icons.edit,
|
|
onTap: () => onEdit?.call())
|
|
]);
|
|
}
|
|
}
|