CAKE-330 | added unspent coins details page to the app

This commit is contained in:
OleksandrSobol
2021-05-27 20:57:51 +03:00
parent b71e85b112
commit e36c07b0da
8 changed files with 189 additions and 1 deletions
@@ -0,0 +1,52 @@
import 'package:cake_wallet/src/screens/transaction_details/textfield_list_item.dart';
import 'package:cake_wallet/src/screens/transaction_details/widgets/textfield_list_row.dart';
import 'package:cake_wallet/src/screens/unspent_coins/widgets/unspent_coins_switch_row.dart';
import 'package:cake_wallet/src/widgets/standard_list.dart';
import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_details_view_model.dart';
import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_switch_item.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/src/widgets/standart_list_row.dart';
import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
class UnspentCoinsDetailsPage extends BasePage {
UnspentCoinsDetailsPage({this.unspentCoinsDetailsViewModel});
@override
String get title => 'Unspent coins details';
final UnspentCoinsDetailsViewModel unspentCoinsDetailsViewModel;
@override
Widget body(BuildContext context) {
return SectionStandardList(
sectionCount: 1,
itemCounter: (int _) => unspentCoinsDetailsViewModel.items.length,
itemBuilder: (_, __, index) {
final item = unspentCoinsDetailsViewModel.items[index];
if (item is StandartListItem) {
return StandartListRow(title: '${item.title}:', value: item.value);
}
if (item is TextFieldListItem) {
return TextFieldListRow(
title: item.title,
value: item.value,
onSubmitted: item.onSubmitted,
);
}
if (item is UnspentCoinsSwitchItem) {
return Observer(builder: (_) => UnspentCoinsSwitchRow(
title: item.title,
switchValue: item.switchValue(),
onSwitchValueChange: item.onSwitchValueChange
));
}
return null;
});
}
}
@@ -1,3 +1,4 @@
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/unspent_coins/widgets/unspent_coins_list_item.dart';
import 'package:cake_wallet/src/widgets/standard_list.dart';
import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_list_view_model.dart';
@@ -23,7 +24,9 @@ class UnspentCoinsListPage extends BasePage {
final item = unspentCoinsListViewModel.items[index];
return GestureDetector(
onTap: () {print('Item taped');},
onTap: () =>
Navigator.of(context).pushNamed(Routes.unspentCoinsDetails,
arguments: item),
child: UnspentCoinsListItem(
address: item.address,
amount: item.amount,
@@ -0,0 +1,45 @@
import 'package:cake_wallet/src/widgets/standart_switch.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class UnspentCoinsSwitchRow extends StatelessWidget {
UnspentCoinsSwitchRow(
{this.title,
this.titleFontSize = 14,
this.switchValue,
this.onSwitchValueChange});
final String title;
final double titleFontSize;
final bool switchValue;
final void Function(bool value) onSwitchValueChange;
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
color: Theme.of(context).backgroundColor,
child: Padding(
padding:
const EdgeInsets.only(left: 24, top: 16, bottom: 16, right: 24),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(title,
style: TextStyle(
fontSize: titleFontSize,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.primaryTextTheme.overline.color),
textAlign: TextAlign.left),
Padding(
padding: EdgeInsets.only(top: 12),
child: StandartSwitch(
value: switchValue,
onTaped: () => onSwitchValueChange(!switchValue))
)
]),
),
);
}
}