You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
uco-mobile-poc/lib/app/modules/dashboard/views/shared/main_dash_board.dart

906 lines
44 KiB
Dart

// import 'package:flutter/material.dart';
//
// import 'package:get/get.dart';
// import 'package:uco_ciihive/app/core/constants/app_assets.dart';
// import 'package:uco_ciihive/app/core/constants/translation_keys.dart';
// import 'package:uco_ciihive/app/modules/dashboard/controllers/dashboard_screen_controller.dart';
// import 'package:uco_ciihive/app/modules/user_profile/controllers/user_profile_controller.dart';
// import 'package:uco_ciihive/app/res/app_colors.dart';
// import 'package:uco_ciihive/app/res/app_dimensions.dart';
// import 'package:uco_ciihive/app/routes/app_pages.dart';
//
// import 'bottom_sheet_icon.dart';
//
// class DashBoardWithAllAccounts extends GetView<DashboardScreenController> {
// late MenuController? menuController;
//
// DashBoardWithAllAccounts({super.key, this.menuController});
//
// final DashboardScreenController dashBoardController = Get.find<DashboardScreenController>();
//
// @override
// Widget build(BuildContext Get.context!) {
// controller.Get.context! = Get.context!;
// return Scaffold(
// floatingActionButton: Padding(
// padding: EdgeInsets.symmetric(vertical: 20, horizontal: 30),
// child: SpeedDial(
// openBackgroundColor: AppColors.colorButton,
// closedBackgroundColor: AppColors.colorPrimaryLight,
// labelsBackgroundColor: AppColors.colorButton,
// labelsStyle: Theme.of(Get.context!).textTheme.bodyMedium?.copyWith(color: AppColors.colorPrimary),
// speedDialChildren: [
// SpeedDialChild(
// backgroundColor: AppColors.colorButton,
// label: TranslationKeys.makeTranslation(TranslationKeys.textLogin),
// child: Padding(
// padding: const EdgeInsets.all(2.0),
// child: SvgPicture.asset(
// AppAssets.ic_u_send,
// color: Colors.white,
// ),
// ),
// onPressed: () {
// //Get.toNamed(Routes.DIRECT_PAYMENT);
// },
// ),
// SpeedDialChild(
// backgroundColor: AppColors.colorButton,
// label: TranslationKeys.makeTranslation(TranslationKeys.textLogin),
// child: Padding(
// padding: const EdgeInsets.all(8.0),
// child: SvgPicture.asset(
// AppAssets.ic_u_send,
// color: Colors.white,
// ),
// ),
// onPressed: () {
// //Get.toNamed(Routes.NEW_BENEFICIARY);
// },
// ),
// SpeedDialChild(
// backgroundColor: AppColors.colorButton,
// label: TranslationKeys.makeTranslation(TranslationKeys.textLogin),
// child: Padding(
// padding: const EdgeInsets.all(8.0),
// child: SvgPicture.asset(
// AppAssets.ic_u_send,
// color: Colors.white,
// ),
// ),
// onPressed: () {
// // Get.toNamed(Routes.OWN_TRANSFER);
// },
// ),
// SpeedDialChild(
// backgroundColor: AppColors.colorButton,
// label: TranslationKeys.makeTranslation(TranslationKeys.textLogin),
// child: Padding(
// padding: const EdgeInsets.all(8.0),
// child: SvgPicture.asset(
// AppAssets.ic_u_send,
// color: Colors.white,
// ),
// ),
// onPressed: () {
// //Get.toNamed(Routes.ZAKAT);
// },
// ),
// ],
// child: CustomText(TranslationKeys.makeTranslation(TranslationKeys.textHelp), style: Theme.of(Get.context!).textTheme.titleSmall?.copyWith(fontSize: 11, color: AppColors.colorSecondary)),
// ),
// ),
// body: Column(
// children: [
// Expanded(
// child: SingleChildScrollView(
// child: Column(
// children: [
// Stack(
// children: [
// Container(
// height: 60,
// color: AppColors.colorPrimary,
// ),
// Align(
// alignment: Alignment.center,
// child: Padding(
// padding: EdgeInsets.only(top: 20),
// child: CircleAvatar(
// radius: 40.0,
// child: SvgPicture.asset(
// AppAssets.lg_round_uc_logo,
// height: 100,
// width: 100,
// fit: BoxFit.cover,
// ),
// ),
// ),
// ),
// ],
// ),
// SizedBox(height: 10),
// CustomText(TranslationKeys.makeTranslation(TranslationKeys.textDashboardWelcomeUser), style: Theme.of(Get.context!).textTheme.titleMedium),
// SizedBox(height: 10),
// Stack(
// children: [
// Align(
// alignment: Alignment.center,
// child: Container(
// height: 230,
// width: 188,
// decoration: BoxDecoration(
// color: AppColors.colorGrey100,
// border: Border.all(color: AppColors.colorText.withOpacity(0.1), width: 1),
// borderRadius: BorderRadius.all(Radius.circular(AppDimensions.radiusCard)),
// ),
// ),
// ),
// Align(
// alignment: Alignment.center,
// child: Padding(
// padding: EdgeInsets.only(top: 15.0),
// child: Container(
// height: 225,
// width: 188,
// decoration: BoxDecoration(
// color: AppColors.colorGrey200,
// border: Border.all(color: AppColors.colorText.withOpacity(0.2), width: 1),
// borderRadius: BorderRadius.all(Radius.circular(AppDimensions.radiusCard)),
// ),
// ),
// ),
// ),
// Align(
// alignment: Alignment.center,
// child: Padding(
// padding: EdgeInsets.all(30.0),
// child: Container(
// height: 200,
// width: 212,
// decoration: BoxDecoration(
// color: AppColors.colorGrey50,
// border: Border.all(color: AppColors.colorButton, width: 2),
// borderRadius: BorderRadius.all(Radius.circular(AppDimensions.radiusCard)),
// ),
// ),
// ),
// ),
// Align(
// alignment: Alignment.center,
// child: Padding(
// padding: EdgeInsets.only(top: 40.0),
// child: Container(
// height: 179,
// width: 190,
// decoration: BoxDecoration(
// color: AppColors.colorGrey50,
// border: Border.all(color: AppColors.colorPrimary, width: 2),
// borderRadius: BorderRadius.all(Radius.circular(AppDimensions.radiusCard)),
// ),
// child: Padding(
// padding: EdgeInsets.symmetric(horizontal: 20, vertical: 20),
// child: Column(
// mainAxisAlignment: MainAxisAlignment.center,
// children: [
// CustomText(TranslationKeys.makeTranslation(TranslationKeys.textTotalAvailableFunds), style: Theme.of(Get.context!).textTheme.bodySmall),
// SizedBox(height: 5),
// CustomText(TranslationKeys.makeTranslation(TranslationKeys.textTotalAvailableBalance), style: Theme.of(Get.context!).textTheme.titleLarge),
// SizedBox(height: 5),
// CustomText(TranslationKeys.makeTranslation(TranslationKeys.textTotalAvailableBalanceInWords), style: Theme.of(Get.context!).textTheme.bodySmall),
// SizedBox(height: 5),
// CustomText(TranslationKeys.makeTranslation(TranslationKeys.textAccountNumber), style: Theme.of(Get.context!).textTheme.bodySmall),
// ],
// ),
// ),
// ),
// ),
// ),
// ],
// ),
// SizedBox(height: 5),
// Stack(
// children: [
// InkWell(
// onTap: () {
// Get.toNamed(Routes.TRANSACTION_HISTORY);
// },
// child: Padding(
// padding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 0.0),
// child: Container(
// color: AppColors.colorGrey300,
// child: Row(
// children: <Widget>[
// Column(children: [
// Container(
// decoration: const BoxDecoration(
// color: AppColors.colorPrimary,
// borderRadius: BorderRadius.zero,
// ),
// child: Padding(
// padding: const EdgeInsets.all(20.0),
// child: SvgPicture.asset(AppAssets.img_debet, color: AppColors.colorSecondary),
// ),
// )
// ]),
// Padding(
// padding: EdgeInsets.symmetric(horizontal: 20),
// child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
// CustomText(
// "Current Account",
// style: Theme.of(Get.context!).textTheme.titleSmall,
// ),
// SizedBox(height: 5),
// CustomText(
// "022379122*****95",
// style: Theme.of(Get.context!).textTheme.bodySmall,
// ),
// ]),
// ),
// ],
// ),
// ),
// ),
// ),
// Positioned(
// top: 20,
// right: 20,
// child: Align(
// alignment: Directionality.of(Get.context!) == TextDirection.rtl ? Alignment.bottomLeft : Alignment.bottomRight,
// child: Transform(
// alignment: Alignment.center,
// transform: Matrix4.rotationY(Directionality.of(Get.context!) == TextDirection.rtl ? 3.14159 : 0),
// child: SizedBox(
// height: 40,
// width: 40,
// child: SvgPicture.asset(
// fit: BoxFit.cover,
// AppAssets.img_round_dashboard_card,
// height: 35,
// width: 35,
// )),
// )),
// ),
// ],
// ),
// SizedBox(height: 20),
// Stack(
// children: [
// Padding(
// padding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 0.0),
// child: Container(
// color: AppColors.colorGrey300,
// child: Row(
// children: <Widget>[
// Column(children: [
// Container(
// decoration: const BoxDecoration(
// color: AppColors.colorPrimary,
// borderRadius: BorderRadius.zero,
// ),
// child: Padding(
// padding: const EdgeInsets.all(20.0),
// child: SvgPicture.asset(AppAssets.img_debet, color: AppColors.colorSecondary),
// ),
// )
// ]),
// Padding(
// padding: EdgeInsets.symmetric(horizontal: 20),
// child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
// CustomText(
// "Current Account",
// style: Theme.of(Get.context!).textTheme.titleSmall,
// ),
// SizedBox(height: 5),
// CustomText(
// "022379122*****95",
// style: Theme.of(Get.context!).textTheme.bodySmall,
// ),
// ]),
// ),
// ],
// ),
// ),
// ),
// Positioned(
// top: 20,
// right: 20,
// child: Align(
// alignment: Directionality.of(Get.context!) == TextDirection.rtl ? Alignment.bottomLeft : Alignment.bottomRight,
// child: Transform(
// alignment: Alignment.center,
// transform: Matrix4.rotationY(Directionality.of(Get.context!) == TextDirection.rtl ? 3.14159 : 0),
// child: SizedBox(
// height: 40,
// width: 40,
// child: SvgPicture.asset(
// fit: BoxFit.cover,
// AppAssets.img_round_dashboard_card,
// height: 35,
// width: 35,
// )),
// )),
// ),
// ],
// ),
// ],
// ),
// ),
// ),
// Container(
// padding: EdgeInsets.symmetric(horizontal: 20),
// child: Stack(
// alignment: Alignment.bottomCenter,
// children: [
// Container(
// padding: EdgeInsets.symmetric(horizontal: 30, vertical: 10),
// margin: EdgeInsets.only(bottom: 10),
// width: double.infinity,
// decoration: BoxDecoration(
// color: AppColors.colorPrimary,
// borderRadius: BorderRadius.all(
// Radius.circular(10),
// ),
// ),
// child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: [
// BottomSheetIcon(
// title: TranslationKeys.makeTranslation(TranslationKeys.textLogin),
// imageProvider: AppAssets.ic_u_send,
// onTap: () {},
// ),
// BottomSheetIcon(
// title: TranslationKeys.makeTranslation(TranslationKeys.textLogin),
// imageProvider: AppAssets.ic_u_send,
// onTap: () {},
// ),
// BottomSheetIcon(
// title: TranslationKeys.makeTranslation(TranslationKeys.textLogin),
// imageProvider: AppAssets.ic_u_send,
// onTap: () {},
// ),
// SizedBox(width: 20),
// /* const SizedBox()*/
// ],
// ),
// ),
// ],
// ),
// )
// ],
// ),
// );
// }
// }
// =======
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import '../../../../core/constants/app_assets.dart';
import '../../../../core/constants/translation_keys.dart';
import '../../../../core/utils/SessionCache.dart';
import '../../../../core/utils/logs_utils.dart';
import '../../../../custom_widgets/custom_no_record.dart';
import '../../../../custom_widgets/custom_text.dart';
import '../../../../res/app_colors.dart';
import '../../../../routes/app_pages.dart';
import '../../../speed_dial/src/simple_speed_dial.dart';
import '../../../u_received/views/u_received_view.dart';
import '../../../u_send/views/u_send_view.dart';
import '../../controllers/dashboard_screen_controller.dart';
import 'bottom_sheet_icon.dart';
class DashBoardWithAllAccounts extends GetView<DashboardScreenController> {
late MenuController? menuController;
DashBoardWithAllAccounts({super.key, this.menuController});
final DashboardScreenController dashBoardController = Get.find<DashboardScreenController>();
List<Widget> widgetList = [
const DashBoardPage(),
const USendView(showAppBar: false),
const UReceivedView(showAppBar: false),
const Center(
child: CustomNoRecord(title: "No Record Found",
description: "We couldn't find any activity at this moment"),
)
];
@override
Widget build(BuildContext context) {
controller.context = context;
return KeyboardVisibilityBuilder(builder: (context, isKeyboardOpen) {
dp("OPen is", isKeyboardOpen);
return Scaffold(
resizeToAvoidBottomInset: false,
floatingActionButton: isKeyboardOpen ? null : mainFloatingButton(),
floatingActionButtonLocation: FloatingActionButtonLocation.endDocked,
bottomNavigationBar: isKeyboardOpen
? null
: Container(
height: 55,
clipBehavior: Clip.none,
padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 0),
margin: const EdgeInsets.only(bottom: 10, right: 20, left: 20),
decoration: const BoxDecoration(
color: AppColors.colorPrimary,
borderRadius: BorderRadius.all(Radius.circular(10)),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
BottomSheetIcon(
title: TranslationKeys.makeTranslation(TranslationKeys.textHome),
imageProvider: AppAssets.ic_home_icon,
onTap: () {
dp("Click", " home dash board");
controller.updatePage(0);
},
width: 25,
height: 25,
),
BottomSheetIcon(
title: TranslationKeys.makeTranslation(TranslationKeys.textUSend),
imageProvider: AppAssets.ic_u_cash,
onTap: () {
dp("Click", " home dash board");
controller.updatePage(1);
},
width: 25,
height: 25,
),
BottomSheetIcon(
title: TranslationKeys.makeTranslation(TranslationKeys.textReceived),
imageProvider: AppAssets.ic_u_recive,
onTap: () {
controller.updatePage(2);
},
width: 25,
height: 25,
),
BottomSheetIcon(
title: TranslationKeys.makeTranslation(TranslationKeys.textUShop),
imageProvider: AppAssets.ic_u_shop,
onTap: () {
controller.fetchDepositAccounts();
controller.fetchExchangeRates();
controller.updatePage(3);
},
width: 25,
height: 25,
),
const SizedBox(width: 20),
/* const SizedBox()*/
],
),
),
body: GetBuilder<DashboardScreenController>(
builder: (controller) => widgetList[controller.curentIndex],
),
);
});
}
Widget mainFloatingButton() {
return SpeedDial(
openBackgroundColor: AppColors.colorButton,
closedBackgroundColor: AppColors.colorPrimaryLight,
labelsBackgroundColor: AppColors.colorButton,
labelsStyle: Get.context!.textTheme.bodyMedium?.copyWith(
color: AppColors.white,
fontSize: 16,
fontWeight: FontWeight.w600,
),
speedDialChildren: [
SpeedDialChild(
backgroundColor: AppColors.colorButton,
label: TranslationKeys.makeTranslation(TranslationKeys.textBillManagement),
child: SvgPicture.asset(AppAssets.ic_bill),
onPressed: () {
Get.toNamed(Routes.BILL_MANAGEMENT);
},
),
SpeedDialChild(
backgroundColor: AppColors.colorButton,
label: TranslationKeys.makeTranslation(TranslationKeys.textAccountStatement),
child: SvgPicture.asset(AppAssets.ic_money_management),
onPressed: () {
Get.toNamed(Routes.ACCOUNT_STATEMENT);
},
),
SpeedDialChild(
backgroundColor: AppColors.colorButton,
label: TranslationKeys.makeTranslation(TranslationKeys.textUserActivity),
child: SvgPicture.asset(AppAssets.ic_activity),
onPressed: () {
Get.toNamed(Routes.USER_ACTIVITY);
},
),
SpeedDialChild(
backgroundColor: AppColors.colorButton,
label: TranslationKeys.makeTranslation(TranslationKeys.textAddBeneficiary),
child: SvgPicture.asset(AppAssets.ic_u_recive, color: AppColors.colorPrimary),
onPressed: () {
Get.toNamed(Routes.BENEFICIARY_MANAGEMENT);
},
),
],
child: SvgPicture.asset(
AppAssets.sending_icon,
));
}
}
class DashBoardPage extends StatelessWidget {
const DashBoardPage({super.key});
@override
Widget build(BuildContext context) {
return GetBuilder<DashboardScreenController>(builder: (controller) {
return Obx(() {
return Column(
children: [
controller.depositeAccount.isEmpty
? const Center(
child: Text("Data not found please try again"),
)
: Expanded(
child: Column(
children: [
Stack(
fit: StackFit.passthrough,
clipBehavior: Clip.none,
children: [
Container(
height: 60,
color: AppColors.colorPrimary,
),
Align(
alignment: Alignment.center,
child: Padding(
padding: const EdgeInsets.only(top: 20),
child: SvgPicture.asset(AppAssets.ic_dashboard_logo, height: 89, width: 79, fit: BoxFit.cover),
),
),
const Positioned(bottom: -10, left: 0, right: 0, child: AddMoneyAndKyc()),
],
),
const SizedBox(height: 27),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 30),
child: CustomText(
"Welcome ${SessionCache.instance.userInfo.name}",
style: context.textTheme.titleMedium!.copyWith(fontSize: 21, fontWeight: FontWeight.w400),
textAlign: TextAlign.center,
),
),
const SizedBox(height: 30),
SingleChildScrollView(
scrollDirection: Axis.horizontal,
padding: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 20.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
...controller.depositeAccount
.map((depositAccount) => InkWell(
onTap: () {
Get.toNamed(Routes.ACCOUNT_STATEMENT, arguments: {"accountNumber": depositAccount.mbmBkmsnumber});
},
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 5.0),
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 10.0, vertical: 10.0),
decoration: BoxDecoration(borderRadius: BorderRadius.circular(5), color: Colors.white, boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.3), // Adjust color and opacity
spreadRadius: 2.0, // Adjust for shadow diffusion
blurRadius: 4.0, // Adjust for shadow softness
offset: const Offset(0, 2), // Adjust for shadow position (x, y)
),
BoxShadow(
color: Colors.grey.withOpacity(0.3), // Adjust color and opacity
spreadRadius: 2.0, // Adjust for shadow diffusion
blurRadius: 4.0, // Adjust for shadow softness
offset: const Offset(0, 0), // Adjust for shadow position (x, y)
),
]),
child: Row(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Flexible(
// flex: 3,
child: Padding(
padding: const EdgeInsets.only(top: 30.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CustomText(
"Total Balance",
style: context.textTheme.bodyMedium!.copyWith(fontSize: 11, fontWeight: FontWeight.w400),
),
const SizedBox(height: 8),
SizedBox(
width: 160,
child: AutoSizeText(
"${depositAccount.pcrCurrshort} ${depositAccount.mbmBkmsbalance.toStringAsFixed(2)}",
style: context.textTheme.bodyMedium!.copyWith(fontSize: 20, fontWeight: FontWeight.w400),
overflow: TextOverflow.ellipsis,
),
),
],
),
),
),
const SizedBox(width: 30),
Flexible(
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
children: [Image.asset(controller.getFlagWithCurrencyCode(depositAccount.pcrCurrcode), width: 30, height: 30)],
),
)
],
)),
)))
.toList(),
const SizedBox(width: 10),
InkWell(
onTap: () {
Get.toNamed(Routes.ADD_NEW_ACCOUNT);
},
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 10.0, vertical: 14.0),
decoration: BoxDecoration(borderRadius: BorderRadius.circular(5), color: Colors.white, boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.3), // Adjust color and opacity
spreadRadius: 2.0, // Adjust for shadow diffusion
blurRadius: 4.0, // Adjust for shadow softness
offset: const Offset(0, 2), // Adjust for shadow position (x, y)
),
BoxShadow(
color: Colors.grey.withOpacity(0.3), // Adjust color and opacity
spreadRadius: 2.0, // Adjust for shadow diffusion
blurRadius: 4.0, // Adjust for shadow softness
offset: const Offset(0, 0), // Adjust for shadow position (x, y)
),
]),
child: Row(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Flexible(
flex: 3,
child: Padding(
padding: const EdgeInsets.only(top: 30.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CustomText(
TranslationKeys.makeTranslation(TranslationKeys.textAddAccount),
style: context.textTheme.titleSmall!.copyWith(fontSize: 15, fontWeight: FontWeight.w400),
),
const SizedBox(height: 5),
CustomText(
"40+ currencies",
style: context.textTheme.bodyMedium!.copyWith(fontSize: 11, fontWeight: FontWeight.w400),
overflow: TextOverflow.ellipsis,
)
],
),
),
),
const SizedBox(width: 30),
Flexible(
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Container(
// height: 50,
// width: 50,
padding: const EdgeInsets.all(10.0),
decoration: BoxDecoration(
color: AppColors.colorGrey350,
borderRadius: BorderRadius.circular(50.0),
),
child: Image.asset(AppAssets.ic_add_new_Account, height: 15, width: 15),
)
],
),
)
],
)),
),
],
),
),
const SizedBox(height: 10),
controller.depositeAccount.isNotEmpty
? Expanded(
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 5.0),
child: ListView.separated(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: controller.depositeAccount.length,
itemBuilder: (context, index) {
return depositAccountItem(controller, context, index);
},
separatorBuilder: (BuildContext context, int index) {
return const Padding(padding: EdgeInsets.symmetric(vertical: 10));
},
),
),
),
)
: const Center(
child: Text("No deposit accounts found."),
)
],
),
),
],
);
});
});
}
GestureDetector depositAccountItem(DashboardScreenController controller, BuildContext context, int index) {
return GestureDetector(
onTap: () {
Get.toNamed(Routes.ACCOUNT_STATEMENT, arguments: {"accountNumber": controller.depositeAccount.elementAt(index).mbmBkmsnumber});
},
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 0.0),
child: Container(
// padding: const EdgeInsets.all(5.0),
decoration: BoxDecoration(borderRadius: BorderRadius.circular(0), color: Colors.white, boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.3),
spreadRadius: 2.0,
blurRadius: 4.0,
offset: const Offset(0, 2),
),
BoxShadow(
color: Colors.grey.withOpacity(0.3),
spreadRadius: 2.0,
blurRadius: 4.0,
offset: const Offset(0, 0),
),
]),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
const SizedBox(width: 7),
Padding(
padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 15),
child: Align(alignment: Alignment.bottomRight, child: Image.asset(controller.getFlagWithCurrencyCode(controller.depositeAccount.elementAt(index).pcrCurrcode), width: 40, height: 40, fit: BoxFit.cover)),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 5),
child: Column(mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [
CustomText(
"${controller.depositeAccount.elementAt(index).mbmBkmstitle.toString()} (${controller.depositeAccount.elementAt(index).pcrCurrshort})",
style: Theme.of(Get.context!).textTheme.titleSmall!.copyWith(fontSize: 14, fontWeight: FontWeight.w400),
),
const SizedBox(height: 5),
CustomText(
controller.depositeAccount.elementAt(index).mbmBkmsnumber.toString(),
style: Theme.of(Get.context!).textTheme.titleSmall!.copyWith(fontSize: 10, fontWeight: FontWeight.w500),
),
]),
),
Expanded(
flex: 3,
child: Align(
alignment: Alignment.centerRight,
child: CustomText(
"${controller.depositeAccount.elementAt(index).pcrCurrshort} ${controller.depositeAccount.elementAt(index).mbmBkmsbalance.toStringAsFixed(2)}",
style: context.textTheme.titleMedium!.copyWith(fontSize: 13, fontWeight: FontWeight.w400),
),
),
),
Align(
alignment: Directionality.of(Get.context!) == TextDirection.rtl ? Alignment.bottomLeft : Alignment.bottomRight,
child: Padding(
padding: const EdgeInsets.only(top: 26),
child: SizedBox(
height: 55,
width: 55,
child: SvgPicture.asset(
fit: BoxFit.cover,
AppAssets.ic_desposit_account_arrow,
height: 45,
width: 40,
)),
)),
],
),
),
),
);
}
}
class AddMoneyAndKyc extends StatelessWidget {
const AddMoneyAndKyc({super.key});
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.only(left: 22, right: 22),
child: Row(
children: [
GestureDetector(
onTap: () {
Get.toNamed(Routes.ADD_MONEY);
},
child: Container(
padding: const EdgeInsets.all(15.0),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(25),
border: Border.all(color: AppColors.ff444444),
),
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 5),
child: Row(
children: [
CustomText(
"Add Money",
style: context.textTheme.bodyMedium!.copyWith(fontSize: 11, fontWeight: FontWeight.w400),
),
const SizedBox(
width: 4,
),
const Icon(Icons.add, color: Colors.green, size: 15)
],
),
),
),
),
const Spacer(),
Container(
decoration: BoxDecoration(
color: SessionCache.instance.userInfo.isKycVerified ? Colors.green : AppColors.ffF95846,
borderRadius: const BorderRadius.only(topLeft: Radius.circular(22), bottomRight: Radius.circular(22)),
),
padding: const EdgeInsets.only(top: 5.5, bottom: 5.5, left: 12, right: 12),
child: Row(
children: [
CustomText(
SessionCache.instance.userInfo.isKycVerified ? "KYC verified" : "KYC Unverified",
style: context.textTheme.bodyMedium!.copyWith(
fontSize: 11,
color: Colors.white,
fontWeight: FontWeight.w400,
),
),
const SizedBox(width: 4),
SvgPicture.asset(
SessionCache.instance.userInfo.isKycVerified ? AppAssets.ic_tick_option : AppAssets.ic_cross_white,
width: 15,
height: 15,
)
],
),
),
],
),
);
}
}