2020-05-08 16:22:56 +00:00
|
|
|
import 'package:flutter/material.dart';
|
2020-07-29 16:55:42 +00:00
|
|
|
import 'package:cake_wallet/palette.dart';
|
2020-05-08 16:22:56 +00:00
|
|
|
|
2020-07-29 16:55:42 +00:00
|
|
|
class TemplateTile extends StatefulWidget {
|
2020-05-08 16:22:56 +00:00
|
|
|
TemplateTile({
|
2020-07-29 16:55:42 +00:00
|
|
|
Key key,
|
2020-05-13 18:26:15 +00:00
|
|
|
@required this.to,
|
2020-05-08 16:22:56 +00:00
|
|
|
@required this.amount,
|
2020-05-13 18:26:15 +00:00
|
|
|
@required this.from,
|
2020-07-29 16:55:42 +00:00
|
|
|
@required this.onTap,
|
|
|
|
@required this.onRemove
|
|
|
|
}) : super(key: key);
|
2020-05-08 16:22:56 +00:00
|
|
|
|
2020-05-13 18:26:15 +00:00
|
|
|
final String to;
|
2020-05-08 16:22:56 +00:00
|
|
|
final String amount;
|
2020-05-13 18:26:15 +00:00
|
|
|
final String from;
|
2020-05-08 16:22:56 +00:00
|
|
|
final VoidCallback onTap;
|
2020-07-29 16:55:42 +00:00
|
|
|
final VoidCallback onRemove;
|
|
|
|
|
|
|
|
@override
|
|
|
|
TemplateTileState createState() => TemplateTileState(
|
|
|
|
to,
|
|
|
|
amount,
|
|
|
|
from,
|
|
|
|
onTap,
|
|
|
|
onRemove
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
class TemplateTileState extends State<TemplateTile> {
|
|
|
|
TemplateTileState(
|
|
|
|
this.to,
|
|
|
|
this.amount,
|
|
|
|
this.from,
|
|
|
|
this.onTap,
|
|
|
|
this.onRemove
|
|
|
|
);
|
|
|
|
|
|
|
|
final String to;
|
|
|
|
final String amount;
|
|
|
|
final String from;
|
|
|
|
final VoidCallback onTap;
|
|
|
|
final VoidCallback onRemove;
|
|
|
|
final trash = Image.asset('assets/images/trash.png', height: 16, width: 16, color: Colors.white);
|
|
|
|
|
|
|
|
bool isRemovable = false;
|
2020-05-08 16:22:56 +00:00
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
2020-08-20 17:43:54 +00:00
|
|
|
final color = isRemovable ? Colors.white : Theme.of(context).primaryTextTheme.title.color;
|
2020-07-29 16:55:42 +00:00
|
|
|
final toIcon = Image.asset('assets/images/to_icon.png', color: color);
|
|
|
|
|
|
|
|
final content = Row(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.start,
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
children: <Widget>[
|
|
|
|
Text(
|
|
|
|
amount,
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: 16,
|
|
|
|
fontWeight: FontWeight.w600,
|
|
|
|
color: color
|
|
|
|
),
|
|
|
|
),
|
|
|
|
Padding(
|
|
|
|
padding: EdgeInsets.only(left: 5),
|
|
|
|
child: Text(
|
|
|
|
from,
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: 16,
|
|
|
|
fontWeight: FontWeight.w600,
|
|
|
|
color: color
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
Padding(
|
|
|
|
padding: EdgeInsets.only(left: 5),
|
|
|
|
child: toIcon,
|
|
|
|
),
|
|
|
|
Padding(
|
|
|
|
padding: EdgeInsets.only(left: 5),
|
|
|
|
child: Text(
|
|
|
|
to,
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: 16,
|
|
|
|
fontWeight: FontWeight.w600,
|
|
|
|
color: color
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
2020-05-29 15:10:11 +00:00
|
|
|
);
|
|
|
|
|
2020-07-29 16:55:42 +00:00
|
|
|
final tile = Container(
|
|
|
|
padding: EdgeInsets.only(right: 10),
|
|
|
|
child: ClipRRect(
|
|
|
|
borderRadius: BorderRadius.all(Radius.circular(20)),
|
|
|
|
child: GestureDetector(
|
|
|
|
onTap: onTap,
|
|
|
|
onLongPress: () {
|
|
|
|
setState(() {
|
|
|
|
isRemovable = true;
|
|
|
|
});
|
|
|
|
},
|
|
|
|
child: Container(
|
|
|
|
height: 40,
|
|
|
|
padding: EdgeInsets.only(left: 24, right: 24),
|
2020-08-20 17:43:54 +00:00
|
|
|
color: Theme.of(context).primaryTextTheme.display3.decorationColor,
|
2020-07-29 16:55:42 +00:00
|
|
|
child: content,
|
|
|
|
),
|
2020-05-08 16:22:56 +00:00
|
|
|
),
|
2020-07-29 16:55:42 +00:00
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
final removableTile = Container(
|
|
|
|
padding: EdgeInsets.only(right: 10),
|
|
|
|
child: ClipRRect(
|
|
|
|
borderRadius: BorderRadius.all(Radius.circular(20)),
|
|
|
|
child: Row(
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
children: <Widget>[
|
|
|
|
GestureDetector(
|
|
|
|
onTap: () {
|
|
|
|
setState(() {
|
|
|
|
isRemovable = false;
|
|
|
|
});
|
|
|
|
},
|
|
|
|
child: Container(
|
|
|
|
height: 40,
|
|
|
|
padding: EdgeInsets.only(left: 24, right: 10),
|
CAKE-39 | changed buttons color on base send widget, base exchange widget, exchange confirm page, exchange trade page, node create or edit page, contact page, seed widget, restore wallet from seed details page, restore wallet from keys page, wallet seed page, template tile
2020-09-10 10:33:34 +00:00
|
|
|
color: Colors.orange,
|
2020-07-29 16:55:42 +00:00
|
|
|
child: content,
|
2020-05-08 16:22:56 +00:00
|
|
|
),
|
|
|
|
),
|
2020-07-29 16:55:42 +00:00
|
|
|
GestureDetector(
|
|
|
|
onTap: onRemove,
|
|
|
|
child: Container(
|
|
|
|
height: 40,
|
|
|
|
width: 44,
|
|
|
|
color: Palette.darkRed,
|
|
|
|
child: Center(
|
|
|
|
child: trash,
|
|
|
|
),
|
2020-05-08 16:22:56 +00:00
|
|
|
),
|
2020-07-29 16:55:42 +00:00
|
|
|
)
|
|
|
|
],
|
|
|
|
)
|
|
|
|
)
|
2020-05-08 16:22:56 +00:00
|
|
|
);
|
2020-07-29 16:55:42 +00:00
|
|
|
|
|
|
|
return isRemovable ? removableTile : tile;
|
2020-05-08 16:22:56 +00:00
|
|
|
}
|
|
|
|
}
|