import 'package:badges/badges.dart'; import 'package:diplomaticquarterapp/Constants.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; import 'package:diplomaticquarterapp/pages/ToDoList/ToDo.dart'; import 'package:diplomaticquarterapp/pages/medical/balance/advance_payment_page.dart'; import 'package:diplomaticquarterapp/pages/medical/balance/my_balance_page.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/data_display/medical/medical_profile_item.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class PaymentService extends StatelessWidget { ToDoCountProviderModel model; ProjectViewModel projectViewModel; @override Widget build(BuildContext context) { projectViewModel = Provider.of(context); model = Provider.of(context); List paymentServiceList = getPaymentServiceList(context); return AppScaffold( isShowAppBar: true, isShowDecPage: false, showNewAppBarTitle: true, showNewAppBar: true, appBarTitle: TranslationBase.of(context).paymentService, body: SingleChildScrollView( child: Container( margin: EdgeInsets.all(20.0), child: Column( children: [ Padding( padding: EdgeInsets.only(left: 12, right: 12), child: GridView.builder( shrinkWrap: true, primary: false, physics: NeverScrollableScrollPhysics(), gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3, childAspectRatio: 2 / 2, crossAxisSpacing: 12, mainAxisSpacing: 12), padding: EdgeInsets.zero, itemCount: paymentServiceList.length, itemBuilder: (BuildContext context, int index) { return paymentServiceList[index]; }, ), ), ], ), ), ), ); } List getPaymentServiceList(BuildContext context) { List medical = List(); medical.add( InkWell( onTap: () { Navigator.push(context, FadePage(page: AdvancePaymentPage())); projectViewModel.analytics.advancePayments.payment_services(service_type: 'payment service'); }, child: MedicalProfileItem( title: TranslationBase.of(context).payment, imagePath: 'assets/images/new-design/online_payment_icon.png', subTitle: TranslationBase.of(context).paymentOnline, isPngImage: true, width: 65.0, height: 55.0, ), ), ); medical.add( InkWell( onTap: () { navigateToToDoPage(context); projectViewModel.analytics.advancePayments.payment_services(service_type: 'online check-in appointment'); }, child: Stack( children: [ MedicalProfileItem( title: TranslationBase.of(context).pendingOnly, imagePath: 'pendingPayment.svg', subTitle: TranslationBase.of(context).paymentOnly, isPngImage: false, width: 45.0, height: 45.0, ), projectViewModel.isArabic ? Positioned( left: 8, top: 4, child: Badge( toAnimate: false, elevation: 0, position: BadgePosition.topEnd(), shape: BadgeShape.circle, badgeColor: secondaryColor.withOpacity(1.0), borderRadius: BorderRadius.circular(8), badgeContent: Container( padding: EdgeInsets.all(2.0), child: Text(model.count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), ), ), ) : Positioned( right: 8, top: 4, child: Badge( toAnimate: false, elevation: 0, position: BadgePosition.topEnd(), shape: BadgeShape.circle, badgeColor: secondaryColor.withOpacity(1.0), borderRadius: BorderRadius.circular(8), badgeContent: Container( padding: EdgeInsets.all(2.0), child: Text(model.count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), ), ), ) ], ), ), ); medical.add( InkWell( onTap: () { Navigator.push(context, FadePage(page: MyBalancePage())); projectViewModel.analytics.advancePayments.payment_services(service_type: 'alhabib wallet'); }, child: MedicalProfileItem( title: TranslationBase.of(context).hmg, imagePath: 'assets/images/check-in.png', subTitle: TranslationBase.of(context).wallet, isPngImage: true, width: 45.0, height: 45.0, ), ), ); return medical; } navigateToToDoPage(BuildContext context) { if (projectViewModel.isLogin) { // if (model.count != 0) { Navigator.push(context, FadePage(page: ToDo(isShowAppBar: true))); // } else { // AppToast.showErrorToast(message: TranslationBase.of(context).upcomingEmpty); // } } else { Navigator.push(context, FadePage(page: ToDo(isShowAppBar: true))); } } }