import 'package:flutter/material.dart'; import 'package:get/get.dart'; // import 'package:share_plus/share_plus.dart'; import '../../../core/constants/translation_keys.dart'; import '../../../core/utils/SessionCache.dart'; import '../../../custom_widgets/bottom_sheet.dart'; import '../../../custom_widgets/custom_app_bar.dart'; import '../../../models/DepositAccountResponse.dart'; import '../../../res/app_colors.dart'; import '../../app_setting/controllers/app_setting_controller.dart'; import '../controllers/my_account_controller.dart'; class MyAccountView extends GetView { const MyAccountView({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: DashBoardAppBar( title: TranslationKeys.makeTranslation(TranslationKeys.textMyAccountTitle), onBackButtonPressed: () { Get.back(); }, ), body: Obx( () { return SingleChildScrollView( child: Stack( children: [ Container( height: 150, decoration: BoxDecoration( color: AppColors.colorButton.withOpacity(0.98), borderRadius: const BorderRadius.only( bottomLeft: Radius.circular(40)))), Column( children: [ InkWell( onTap: () { showBottomSheet(context, controller); }, child: Card( surfaceTintColor: Colors.white, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(10)), ), margin: const EdgeInsets.only( left: 10, right: 10, top: 15, bottom: 10), color: Colors.white, elevation: 5.0, child: Container( padding: const EdgeInsets.all(8), decoration: BoxDecoration( color: AppColors.colorPrimary, border: Border.all(color: AppColors.white), borderRadius: BorderRadius.circular(15.0)), child: ListTile( title: Text(controller.fromAccountTitle.value, style: Theme.of(context) .textTheme .titleSmall ?.copyWith(color: AppColors.white)), subtitle: Padding( padding: const EdgeInsets.only(top: 5.0), child: Text(controller.fromAccountNumber.value, style: Theme.of(context) .textTheme .bodySmall ?.copyWith(color: AppColors.white)), ), trailing: const Icon( Icons.keyboard_arrow_down_sharp, color: AppColors.white, ), ), ), ), ), const SizedBox( height: 10, ), Padding( padding: const EdgeInsets.symmetric( horizontal: 15.0, ), child: Card( surfaceTintColor: Colors.white, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(10)), ), elevation: 5.0, child: Stack( children: [ GestureDetector( onTap: () { String message = 'Account Title: ${controller.accountTitleText.value}\nAccount Number: ${controller.accountNumber.value}\nBranch Code: ${controller.branchCode.value}'; String subject = 'Subject for sharing'; // Share.share(message, subject: subject); }, child: Align( alignment: AppSettingController.isRTL.value ? Alignment.topLeft : Alignment.topRight, child: const Padding( padding: EdgeInsets.all(10.0), child: CircleAvatar( maxRadius: 10, minRadius: 10, backgroundColor: AppColors.transparent, child: Icon(Icons.share, size: 15, color: AppColors.colorPrimary), ), ), ), ), Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Padding( padding: const EdgeInsets.only( left: 15.0, right: 15.0, top: 10), child: Text( TranslationKeys.makeTranslation( TranslationKeys .textMyAccountAccountTitle), style: Theme.of(context).textTheme.bodyMedium, ), ), const SizedBox(height: 5), Padding( padding: const EdgeInsets.only( left: 15.0, right: 15.0, bottom: 10), child: Text( controller.accountTitleText.value, style: Theme.of(context).textTheme.titleSmall, ), ), Padding( padding: const EdgeInsets.only( left: 15.0, right: 15.0, top: 10), child: Text( TranslationKeys.makeTranslation( TranslationKeys .textMyAccountAccountNumber), style: Theme.of(context).textTheme.bodyMedium, ), ), Row( children: [ Padding( padding: const EdgeInsets.only( left: 15.0, right: 15.0, top: 10), child: Text( controller.accountNumber.value, style: Theme.of(context) .textTheme .titleSmall, ), ), const SizedBox(width: 20), ], ), const SizedBox(height: 10), Padding( padding: const EdgeInsets.only( left: 15.0, right: 15.0, top: 10), child: Text( TranslationKeys.makeTranslation( TranslationKeys .textMyAccountBranchCode), style: Theme.of(context) .textTheme .bodyMedium), ), Padding( padding: const EdgeInsets.only( left: 15.0, right: 15.0, top: 10, bottom: 10), child: Text(controller.branchCode.value, style: Theme.of(context) .textTheme .titleSmall), ), ], ), ], ), ), ), Padding( padding: const EdgeInsets.symmetric( horizontal: 15.0, vertical: 15.0), child: Card( surfaceTintColor: Colors.white, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(10)), ), elevation: 5.0, child: SizedBox( height: 60, width: double.infinity, child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Padding( padding: const EdgeInsets.only(left: 15.0, right: 15), child: Text( TranslationKeys.makeTranslation( TranslationKeys .textMyAccountAccountOpeningDate), style: Theme.of(context).textTheme.bodyMedium), ), Padding( padding: const EdgeInsets.symmetric(horizontal: 15), child: Text(controller.accountOpeningDate.value, style: Theme.of(context).textTheme.titleSmall), ) ], ), ), ), ), ], ), ], ), ); }, ), ); } static void showBottomSheet( BuildContext context, MyAccountController controller) { List options = []; for (int i = 0; i < SessionCache.instance.depositAccountList.value.length; i++) { DepositAccount depositAccount = SessionCache.instance.depositAccountList.value[i]; options.add(OptionData.withData(depositAccount.mbmBkmstitle, depositAccount.mbmBkmsnumber, depositAccount)); } // for (int i = 0; i < SessionCache.instance.loanAccountList.length; i++) { // LoanAccount loanAccount = SessionCache.instance.loanAccountList[i]; // options.add(OptionData.withData( // loanAccount.mbmBkmstitle, loanAccount.mbmBkmsnumber, loanAccount)); // } Get.bottomSheet( Container( decoration: BoxDecoration( color: Colors.white, border: Border.all(color: AppColors.colorGrey800, width: 1), borderRadius: const BorderRadius.only( topLeft: Radius.circular(30), topRight: Radius.circular(30))), margin: const EdgeInsets.only(left: 20, right: 20), child: DialogDesign(options, (selectedOption) { if (selectedOption.dataObject is DepositAccount) { DepositAccount selectAccount = selectedOption.dataObject as DepositAccount; controller.fromAccountTitle.value = selectAccount.mbmBkmstitle; controller.fromAccountNumber.value = selectAccount.mbmBkmsnumber; controller.accountTitleText.value = selectAccount.mbmBkmstitle; controller.accountNumber.value = selectAccount.mbmBkmsnumber; // controller.branchCode.value = selectAccount.plcLocadesc; controller.accountOpeningDate.value = selectAccount.mbmBkmsopendate; } // if (selectedOption.dataObject is LoanAccount) { // LoanAccount selectAccount = // selectedOption.dataObject as LoanAccount; // controller.fromAccountTitle.value = selectAccount.mbmBkmstitle; // controller.fromAccountNumber.value = selectAccount.mbmBkmsnumber; // controller.accountTitleText.value = selectAccount.mbmBkmstitle; // controller.accountNumber.value = selectAccount.mbmBkmsnumber; // controller.branchCode.value = selectAccount.plcLocadesc; // controller.accountOpeningDate.value = selectAccount.mbmBkmsopendate; // } }), ), backgroundColor: Colors.transparent, isScrollControlled: true, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.only( topLeft: Radius.circular(10), topRight: Radius.circular(10))), ); } }