Untitled
unknown
plain_text
3 years ago
23 kB
11
Indexable
import 'dart:async';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:mobile_banking/data/bloc/refresh_token/refresh_token.dart';
import 'package:mobile_banking/data/model/global.dart';
import 'package:mobile_banking/feature/settings/change_email/change_email.dart';
import 'package:mobile_banking/feature/settings/change_success/change_success_page.dart';
import 'package:mobile_banking/feature/settings/forgot_password/forgot_password_page.dart';
import 'package:mobile_banking/feature/settings/management_proxy/registrasi_proxy_page.dart';
import 'package:mobile_banking/feature/settings/management_proxy/update_proxy_page.dart';
import 'package:mobile_banking/services/locator.dart';
import 'package:mobile_banking/util/appTheme.dart';
import 'package:mobile_banking/util/app_localization.dart';
import 'package:mobile_banking/util/convert_colors.dart';
import 'package:mobile_banking/util/custome_widget.dart';
import 'package:mobile_banking/util/translator.dart';
import 'package:mobile_banking/util/utility.dart';
import 'package:mobile_banking/widget/base_portfolio_state.dart';
import 'package:mobile_banking/widget/custom_base_page.dart';
import 'package:mobile_banking/widget/custom_button.dart';
import 'package:mobile_banking/widget/custom_dialog_widget.dart';
import 'package:mobile_banking/widget/vertical_spacing.dart';
import 'package:permissions_plugin/permissions_plugin.dart';
import 'package:rounded_loading_button/rounded_loading_button.dart';
class RecieptBifastPage extends StatefulWidget {
static const String route = '/reciept_bifast_page';
// final List<String> rek;
// final List<String> proxy;
// DetailProxyPage({this.rek, this.proxy});
@override
_RecieptBifastPageState createState() => _RecieptBifastPageState();
}
// List<String> dummyData = [];
// List<String> dummyData1 = [];
class _RecieptBifastPageState extends BasePortfolioState<RecieptBifastPage> {
bool isFormField = false;
final TextEditingController _favController = new TextEditingController();
RoundedLoadingButtonController _buttonController =
RoundedLoadingButtonController();
List<Map<String, String>> dummyData = [
{
'key': 'Dari',
'value': 'dummy',
},
{
'key': 'Ke',
'value': 'dummy',
},
{
'key': 'Tujuan Transaksi',
'value': '',
},
{
'key': 'Keterangan',
'value': '',
},
{
'key': 'Biaya Admin',
'value': '',
},
{
'key': 'Total',
'value': '',
},
];
@override
void initState() {
super.initState();
Timer(Duration(seconds: 2), () {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(8))),
backgroundColor: Colors.white,
behavior: SnackBarBehavior.floating,
margin: EdgeInsets.only(
bottom: heightLayer() - 200, left: 8, right: 8, top: 80),
content: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(children: [
Container(
// height: 32,
// width: 32,
// decoration: BoxDecoration(
// color: HexColor('#F58220'),
// borderRadius:
// BorderRadius.circular(100)
//more than 50% of width makes circle
// ),
child: Image.asset(
imagePath('ic_launcher'),
scale: 7 / 3.5,
width: 20,
height: 20,
)),
HorizontalSpacing(
width: 5,
),
Text(
'Tepat',
style: AppTheme.textMarkOT13Reguler212121,
)
]),
VerticalSpacing(height: 11),
Text('title', style: AppTheme.textMarkOT13Bold212121),
VerticalSpacing(
height: 4,
),
Expanded(
child:
Text('subtitle', style: AppTheme.textMarkOT13Reguler212121))
],
)),
dismissDirection: DismissDirection.down,
));
});
}
_RecieptBifastPageState() {}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: CustomerBasePage(
hideIcon: true,
toolbarShadowColour: HexColor('#F58220'),
toolbarColour: HexColor('#F58220'),
textAlign: TextAlign.start,
body: body(),
title: Utility.getValueTranslator("", ""),
iconData: Icons.arrow_back,
footer: footer(),
// backgroundColour: HexColor('#FFFFFF'),
heightFooter: 64,
showConnectIndicator: false,
),
);
}
@override
Widget body() {
return Container(
height: heightLayer(),
width: widthLayer(),
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0xfff58220),
Color(0xfff47b32),
],
),
),
child: Column(
children: <Widget>[
VerticalSpacing(
height: 67,
),
Padding(
padding: const EdgeInsets.only(left: 16, right: 16),
child: Container(
decoration: BoxDecoration(
color: HexColor('#FFFFFF'),
borderRadius: BorderRadius.circular(4), //border corner radius
),
height: 484,
child: Column(children: [
Expanded(child: Text('')),
Container(
height: 0.5,
color: Colors.grey,
),
VerticalSpacing(),
Center(
child: Text(
'Transfer BI Fast',
style: AppTheme.textMarkOT13Reguler212121,
textAlign: TextAlign.center,
),
),
VerticalSpacing(
height: 8,
),
Center(
child: Text(
'Rp',
style: AppTheme.textMarkOT15RegulerOrange,
textAlign: TextAlign.center,
),
),
VerticalSpacing(),
Container(
height: 0.5,
color: Colors.grey,
),
VerticalSpacing(),
Padding(
padding: const EdgeInsets.only(left: 20, right: 20),
child: Container(
height: dummyData.length.toDouble() * 19,
child: ListView.builder(
padding: EdgeInsets.all(0),
itemExtent: 19,
itemCount: dummyData.length,
itemBuilder: (BuildContext context, int index) {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
dummyData[index]['key'],
style: AppTheme.textMarkOT12Regular666666,
),
Text(
dummyData[index]['value'],
style: AppTheme.textMarkOT12Regular212121,
)
],
);
}),
),
),
VerticalSpacing(),
Container(
height: 0.5,
color: Colors.grey,
),
Padding(
padding: const EdgeInsets.only(
left: 20, right: 20, top: 12, bottom: 12),
child: Row(children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"No. Refrensi",
style: AppTheme.textMarkOT12Regular666666,
),
Text(
"ID Transaksi",
style: AppTheme.textMarkOT12Regular666666,
),
Text(
"Tanggal Transaksi",
style: AppTheme.textMarkOT12Regular666666,
),
],
),
Column(
children: [
Text(
" : ",
style: AppTheme.textMarkOT12Regular666666,
),
Text(
" : ",
style: AppTheme.textMarkOT12Regular666666,
),
Text(
" : ",
style: AppTheme.textMarkOT12Regular666666,
),
],
),
]),
),
Container(
height: 0.5,
color: Colors.grey,
),
VerticalSpacing(),
Text(
Utility.getValueTranslator(
" Resi ini merupakan bukti transaksi yang sah.",
"This receipt is proof of a valid transaction."),
style: AppTheme.textMarkOT9Regular212121,
),
VerticalSpacing(),
Row(
children: [
HorizontalSpacing(
width: 14,
),
Container(
// height: 32,
// width: 32,
// decoration: BoxDecoration(
// color: HexColor('#F58220'),
// borderRadius:
// BorderRadius.circular(100)
//more than 50% of width makes circle
// ),
child: Image.asset(
imagePath('ic_ib'),
scale: 7 / 3.5,
width: 25,
height: 25,
),
),
HorizontalSpacing(
width: 9,
),
Expanded(
child: Text(
Utility.getValueTranslator(
" BTPN Syariah berizin dan diawasi oleh OJK dan merupakan peserta penjaminan LPS",
"'BTPN Syariah is licensed and supervised by OJK and is an LPS guarantee participant'"),
style: AppTheme.textMarkOT9Regular212121,
),
),
HorizontalSpacing(
width: 26,
),
Container(
width: 48,
height: 42.19,
// decoration: BoxDecoration(
// color: HexColor('#F58220'),
// borderRadius:
// BorderRadius.circular(100)
//more than 50% of width makes circle
// ),
child: Image.asset(
imagePath('ic_logo_btpn'),
// scale: 9 / 3.5,
// width: 24,
// height: 42.19,
),
),
HorizontalSpacing(
width: 10,
)
],
),
VerticalSpacing(
height: 11,
)
]),
),
),
],
),
);
}
@override
Widget footer() {
return Container(
height: 80.0,
color: Color(0xFFF7F7F7),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
InkWell(
// onTap: () {
// Utility.shareAction(
// widget.transfer
// .mapTransferOnlineReceipt(),
// title: "Transfer ke Bank Lain(Online)",
// balance: widget.transfer.amount,
// footer: widget.transfer
// .mapFooterRefReceipt(context),
// isPending:
// widget.isSuccess ? false : true);
// },
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image.asset(
imagePath('ic_share'),
height: 25,
),
VerticalSpacing(
height: 8,
),
Text(
AppLocalization.of(context).getValue(share),
style: AppTheme.body2,
)
],
),
),
InkWell(
// onTap: () async {
// if (Platform.isAndroid) {
// await checkPermission(
// Permission.WRITE_EXTERNAL_STORAGE);
// await checkPermission(
// Permission.READ_EXTERNAL_STORAGE);
// if (isAllowedScreenshot) {
// Utility.screenshotAction(
// _globalKey, _repaintKey);
// }
// } else {
// Utility.screenshotAction(
// _globalKey, _repaintKey);
// }
// },
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image.asset(
imagePath('ic_screenshot'),
height: 25,
),
VerticalSpacing(
height: 8,
),
Text(
AppLocalization.of(context).getValue(screenShoot),
style: AppTheme.body2,
)
],
),
),
InkWell(
onTap: _addFavoriteTap,
// _addFavoriteTap,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image.asset(
imagePath('ic_favorite'),
height: 25,
),
VerticalSpacing(
height: 8,
),
Text(
AppLocalization.of(context).getValue(addFavorite),
style: AppTheme.body2,
)
],
),
),
],
),
);
}
_addFavoriteTap() {
showModalBottomSheet(
isScrollControlled: true,
context: context,
backgroundColor: Colors.transparent,
builder: (context) {
return StatefulBuilder(
builder: (BuildContext context, StateSetter setModalState) {
return Container(
decoration: BoxDecoration(
color: AppTheme.white,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(30),
topRight: Radius.circular(30)),
boxShadow: [
BoxShadow(color: AppTheme.grey, blurRadius: 8)
]),
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
SizedBox(
height: 15,
),
Container(
height: 5,
width: 30,
color: AppTheme.grey,
),
SizedBox(
height: 15,
),
Text(
Utility.getValueTranslator(
"Simpan Sebagai Favorit", "Save As Favorite"),
style: AppTheme.subHeader,
),
VerticalSpacing(),
Padding(
padding: MediaQuery.of(context).viewInsets,
child: Padding(
padding: const EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'Alias',
textAlign: TextAlign.left,
),
TextFormField(
autofocus: true,
controller: _favController,
decoration: InputDecoration(
labelStyle: AppTheme.formInput),
onChanged: (v) {
setModalState(() {
isFormField = v.isNotEmpty;
});
},
validator: (v) {
if (v.isEmpty || v.trim().length == 0) {
return 'Field tidak boleh kosong!';
}
return null;
},
),
VerticalSpacing(
height: 25,
),
isFormField
? CustomButton(
color: HexColor('#00767A'),
// controller: _buttonController,
onPressed: () {
Navigator.of(context).pop();
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(
// shape: RoundedRectangleBorder(
// borderRadius:
// BorderRadius.all(
// Radius.circular(8))),
backgroundColor:
HexColor('#212121'),
behavior:
SnackBarBehavior.floating,
margin: EdgeInsets.only(
bottom: 80, top: 650),
content: Center(
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
Utility.getValueTranslator(
"Rekening berhasil ditambahkan ke favorit",
"Account has been successfully added to favourites"),
style: AppTheme
.textMarkOT13white,
),
],
)),
dismissDirection:
DismissDirection.down,
));
// _buttonController.start();
// _refreshTokenBloc.add(RefreshToken());
// _bloc.add(SubmitEvent(
// destAccNumber: widget
// .transfer.destAccNumber,
// destBankCode: widget
// .transfer.destBankCode,
// destBankName: widget
// .transfer.destBankName,
// alias: _favController.text));
},
text: AppLocalization.of(context)
.getValue(save))
: CustomButtonInactive(
onPressed: () {},
text: AppLocalization.of(context)
.getValue(save))
],
)
],
),
)),
],
),
);
},
);
});
}
}
Editor is loading...