import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:flutter/cupertino.dart'; 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/translation_keys.dart'; import 'package:uco_mobile_poc/app/custom_widgets/custom_app_bar.dart'; import 'package:uco_mobile_poc/app/res/app_colors.dart'; import '../../../core/constants/form_field_constants.dart'; import '../../../custom_widgets/Fields/input_field.dart'; import '../controllers/notifications_controller.dart'; class NotificationsView extends GetView { const NotificationsView({Key? key}) : super(key: key); @override Widget build(BuildContext context) { String className = runtimeType.toString().split('.').last; return Scaffold( appBar: DashBoardAppBar( title: TranslationKeys.makeTranslation(TranslationKeys.textNotifications), onBackButtonPressed: () { Get.back(); }, ), body: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Stack( children: [ Container( height: 25, decoration: const BoxDecoration( color: AppColors.colorPrimary, )), GestureDetector( onTap: () { controller.showDateRangePicker(); }, child: Padding( padding: const EdgeInsets.all(0.0), child: Card( surfaceTintColor: Colors.white, margin: const EdgeInsets.symmetric( horizontal: 15, vertical: 10), elevation: 5.0, child: Padding( padding: const EdgeInsets.all(8.0), child: Row( //mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Expanded( child: Align( alignment: Alignment.center, child: Text( TranslationKeys.makeTranslation( TranslationKeys.textFilter), style: Theme.of(context) .textTheme .titleSmall! .copyWith( fontSize: 14, fontWeight: FontWeight.w400), ), ), ), Image.asset( AppAssets.ic_sort, height: 25, ), const SizedBox( width: 10, ) ], ), ), ), ), ), ], ), // Padding( // padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 5), // child: Align( // alignment: Alignment.centerLeft, // child: Text( // TranslationKeys.makeTranslation( // TranslationKeys.textPleaseSelectAccount), // style: Theme.of(context) // .textTheme // .titleSmall // ?.copyWith(color: AppColors.titleColor)), // ), // ), Padding( padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 10), child: controller.depositAccountField = InputField( refKey: FormFieldConstants.instance() .getFormKey("${className}depositAccountField"), controller: FormFieldConstants.instance() .getController("${className}depositAccountField"), labelText: "Select From Account", suffixIcon: const Icon(Icons.keyboard_arrow_down, size: 25), isDropDown: true, hintText: "Select from account", dropDownType: DropDownType.SPECIAL, isTopMarginRequired: false, items: controller.allDepositAccounts, onItemSelected: (item) { controller.updateSelectedDeposit(item!); }, ), ), // Padding( // padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 10), // child: SizedBox( // height: 35, // child: InkWell( // onTap: () {}, // child: DropdownButtonHideUnderline( // child: ButtonTheme( // alignedDropdown: true, // child: DropdownButton2( // isExpanded: true, // hint: Row( // mainAxisAlignment: MainAxisAlignment.spaceAround, // children: [ // const Icon( // Icons.list, // size: 20, // color: Colors.yellow, // ), // const SizedBox( // width: 4, // ), // Text(controller.selectedAccountNumber.value), // ], // ), // items: controller.accountNumberList // .toSet() // .map((String item) => DropdownMenuItem( // value: item, // child: Text( // item, // style: Theme.of(context) // .textTheme // .bodyMedium // ?.copyWith( // fontSize: 12, // fontWeight: FontWeight.w400, // color: AppColors.colorText), // overflow: TextOverflow.ellipsis, // ), // )) // .toList(), // value: controller.selectedAccountNumber.value, // onChanged: (String? newValue) { // if (newValue != null) { // controller.selectedAccountNumber.value = newValue; // } // }, // buttonStyleData: ButtonStyleData( // height: 41, // padding: const EdgeInsets.symmetric( // horizontal: 10, vertical: 5), // decoration: BoxDecoration( // borderRadius: BorderRadius.circular(50), // border: Border.all( // color: AppColors.colorGrey350, // ), // color: AppColors.colorSecondary, // ), // elevation: 0, // ), // iconStyleData: IconStyleData( // icon: SvgPicture.asset( // AppAssets.ic_arrow_down, // height: 15, // width: 15, // ), // iconEnabledColor: AppColors.colorText, // iconDisabledColor: AppColors.colorText, // ), // dropdownStyleData: DropdownStyleData( // maxHeight: 150, // width: 320, // decoration: BoxDecoration( // borderRadius: BorderRadius.circular(7), // color: AppColors.colorSecondary, // ), // offset: const Offset(-2, 0), // scrollbarTheme: ScrollbarThemeData( // radius: const Radius.circular(40), // thickness: MaterialStateProperty.all(5), // thumbVisibility: // MaterialStateProperty.all(true), // ), // ), // menuItemStyleData: const MenuItemStyleData( // height: 30, // padding: EdgeInsets.only(left: 14, right: 14), // ), // ), // ), // ), // ), // ), // ), Expanded( flex: 4, child: controller.notificationList.isEmpty ? const Center( child: Text("No notifications are found"), ) : ListView.builder( itemCount: controller.notificationList.length, itemBuilder: (context, index) { return InkWell( onTap: () { controller.showDialogFunction(context); }, child: Padding( padding: const EdgeInsets.symmetric( horizontal: 15, vertical: 0), child: Card( elevation: 2.0, color: AppColors.white, child: Padding( padding: const EdgeInsets.all(10.0), child: Column( children: [ Row( children: [ Text( controller .notificationList[0].description, overflow: TextOverflow.ellipsis, maxLines: 1, style: Theme.of(context) .textTheme .bodySmall ?.copyWith( fontSize: 10, fontWeight: FontWeight.w400), ) ], ), const SizedBox(height: 5), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Expanded( child: Text( controller .notificationList[0].dateTime, overflow: TextOverflow.ellipsis, maxLines: 1, style: Theme.of(context) .textTheme .bodySmall ?.copyWith( fontSize: 10, fontWeight: FontWeight.w400), ), ), //const Expanded(child: SizedBox()), Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ Container( height: 13, width: 0.5, color: AppColors.colorGrey800, ), const SizedBox( width: 10, ), Text( "Read more", overflow: TextOverflow.ellipsis, maxLines: 1, style: Theme.of(context) .textTheme .bodySmall ?.copyWith( color: AppColors .colorPrimary, fontSize: 10, fontWeight: FontWeight.w400), ), ], ), ), ], ), ], ), ), ), ), ); }, ), ), ], ), ); } }