import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:uco_mobile_poc/app/core/constants/app_assets.dart'; import 'package:uco_mobile_poc/app/core/constants/form_field_constants.dart'; import 'package:uco_mobile_poc/app/core/constants/translation_keys.dart'; import 'package:uco_mobile_poc/app/custom_widgets/Fields/input_field.dart'; import 'package:uco_mobile_poc/app/custom_widgets/custom_app_bar.dart'; import 'package:uco_mobile_poc/app/custom_widgets/custom_no_record.dart'; import 'package:uco_mobile_poc/app/custom_widgets/custom_text.dart'; import 'package:uco_mobile_poc/app/models/u_recived_responce_model.dart'; import 'package:uco_mobile_poc/app/res/app_colors.dart'; import '../controllers/u_received_controller.dart'; class UReceivedView extends GetView { const UReceivedView({Key? key, this.showAppBar = true}) : super(key: key); final bool showAppBar; @override Widget build(BuildContext context) { String className = runtimeType.toString().split('.').last; controller.className = className; return Scaffold( appBar: showAppBar ? DashBoardAppBar( title: TranslationKeys.makeTranslation(TranslationKeys.textUReceived), onBackButtonPressed: () { Get.back(); }, ) : null, body: Obx(() { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 0), child: controller.depositAccountField = InputField( refKey: FormFieldConstants.instance().getFormKey("${className}depositAccountField"), controller: FormFieldConstants.instance().getController("${className}depositAccountField"), labelText: "Select Account", suffixIcon: const Icon(Icons.keyboard_arrow_down, size: 25), isDropDown: true, hintText: "Select account", dropDownType: DropDownType.SPECIAL, items: controller.allDepositAccounts, onItemSelected: (item) { controller.updateSelectedDeposit(item!); }, ), ), const SizedBox(height: 10), Padding( padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10), child: Text(TranslationKeys.makeTranslation(TranslationKeys.textPendingRemittance), style: Theme.of(context).textTheme.bodyMedium), ), controller.uReceivedData.isNotEmpty ? Expanded( flex: 1, child: ListView.builder( itemCount: controller.uReceivedData.length, itemBuilder: (context, index) { UReceivedResponseData data = controller.uReceivedData[index]; return Padding( padding: const EdgeInsets.symmetric(vertical: 3.0, horizontal: 15.0), child: Container( decoration: BoxDecoration(borderRadius: BorderRadius.all(Radius.circular(5.0)), border: Border.all(color: AppColors.colorGrey350, width: 1.5)), child: ExpansionTile( collapsedBackgroundColor: Colors.white, tilePadding: const EdgeInsets.symmetric(vertical: 0, horizontal: 10), dense: false, // onExpansionChanged: controller.toggleExpansion(), maintainState: true, expandedAlignment: Alignment.topLeft, expandedCrossAxisAlignment: CrossAxisAlignment.start, childrenPadding: const EdgeInsets.all(10), //tilePadding: EdgeInsets.all(8.0), collapsedShape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(5), ), // collapsedBackgroundColor: AppColors.colorGrey350, shape: const Border(), backgroundColor: AppColors.white, leading: Padding( padding: const EdgeInsets.only(top: 3.0), child: Text("${data.drPcrCurrshort} ${data.sgtGntramt}", style: Theme.of(context).textTheme.bodyMedium?.copyWith(color: AppColors.colorDialogBG)), ), trailing: const Icon( Icons.keyboard_arrow_down_outlined, size: 25, color: AppColors.colorGrey700, ), title: Text(data.drmbmBkmstitle ?? "-", style: Theme.of(context).textTheme.labelMedium), children: [ Text("${data.drPcrCurrshort} ${data.sgtGntramt}", style: Theme.of(context).textTheme.titleSmall?.copyWith(color: AppColors.colorButton)), const SizedBox(height: 5), Row( children: [ Text("Memo: ", style: Theme.of(context).textTheme.labelSmall), Text(data.toString(), style: Theme.of(context).textTheme.labelSmall), ], ), const SizedBox(height: 5), Row( children: [ Text("Sent: ", style: Theme.of(context).textTheme.labelSmall), Text(data.drSgtGntrdate.toString(), style: Theme.of(context).textTheme.labelSmall), ], ), const SizedBox(height: 5), Text("Expires Date: ${data.expSgtGntrdate} ", style: Theme.of(context).textTheme.labelSmall), const SizedBox(height: 5), Text("Transaction-ID: ${data.sgtSentGntrnumber.toString()}${data.sgtSentNodeId}", style: Theme.of(context).textTheme.labelSmall), const SizedBox(height: 5), Text("Sender: ${data.drmbmBkmstitle}", style: Theme.of(context).textTheme.labelSmall), const SizedBox(height: 20), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ InkWell( onTap: () { controller.reverseTransactionRequest(data.sgtSentGntrnumber, data.sgtSentNodeId); }, child: Column( children: [SvgPicture.asset(AppAssets.ic_cross_option, height: 22, width: 22), const SizedBox(height: 5), CustomText(TranslationKeys.makeTranslation(TranslationKeys.textReverse))], ), ), const SizedBox(width: 30), InkWell( onTap: () { controller.acceptTransaction(data); }, child: Column( children: [SvgPicture.asset(AppAssets.ic_tick_option, height: 22, width: 22), const SizedBox(height: 5), CustomText(TranslationKeys.makeTranslation(TranslationKeys.textReceived))], ), ), ], ), ], ), ), ); }, ), ) : const Center(child: CustomNoRecord(title: "No Record Found", description: "We couldn't find any activity at this moment")), ], ); }), ); } }