import 'package:flutter/material.dart'; import 'package:flutter_form_builder/flutter_form_builder.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:form_builder_validators/form_builder_validators.dart'; import 'package:get/get.dart'; import 'package:IQ/app/global/static_informs.dart'; import 'package:IQ/app/global/text_field.dart'; import 'package:IQ/app/global/text_widget.dart'; import 'package:IQ/app/modules/drawerSide/views/drawer_side_view.dart'; import 'package:IQ/app/modules/home/controllers/home_controller.dart'; import 'package:IQ/app/modules/home/providers/user.dart'; import 'package:IQ/app/routes/app_pages.dart'; import '../controllers/fill_card_controller.dart'; class FillCardView extends GetView { FillCardView({Key? key}) : super(key: key); final GlobalKey scaffoldKey = GlobalKey(); @override Widget build(BuildContext context) { return Directionality( textDirection: defaultLocale == "en" ? TextDirection.rtl : TextDirection.ltr, child: Scaffold( backgroundColor: backgroundColor, drawerScrimColor: Colors.black.withOpacity(0.7), key: scaffoldKey, endDrawer: const DrawerSideView(), drawerEdgeDragWidth: widthSize(context), body: GetBuilder( builder: (FillCardController c) { return Stack( children: [ !c.inputsEntered ? !c.succeededFill ? Column( mainAxisAlignment: MainAxisAlignment.center, children: [ const SizedBox(height: 330), Container( margin: const EdgeInsets.symmetric(horizontal: 22), child: Align( alignment: defaultLocale == "en" ? Alignment.centerLeft : Alignment.centerRight, child: TextWidget( text: 'card_top-up'.tr, textAlign: TextAlign.left, fontSize: 22, fontWeight: FontWeight.w500, color: brandColor, ), ), ), FormBuilder( key: controller.formKey, child: BuildTextField( hintTextDirection: textDirection, textDirection: textDirection, onChanged: controller.onChangeSecretNumberInput, signup: true, filled: true, inputColor: Colors.black, fillColor: Colors.white, height: heightSize(context) * 0.1, name: 'card_secret_number', hintText: 'card_secret_num'.tr, obscureText: false, margin: const EdgeInsets.only( top: 20, right: 20.0, left: 20.0, ), onEditingComplete: () { FocusScope.of(context).unfocus(); }, validator: FormBuilderValidators.compose( [ FormBuilderValidators.required( errorText: 'card_secret_num_validation'.tr, ), ], ), keyboardType: TextInputType.number, errorMaxLines: 2, ), ), const SizedBox(height: 20), Container( width: widthSize(context), height: 60, decoration: const BoxDecoration( gradient: LinearGradient( colors: [ Color(0xFF4009C0), Color(0xFF8C5EF6) ], // Gradient colors begin: Alignment.centerLeft, end: Alignment.centerRight, ), borderRadius: BorderRadius.all(Radius.circular(5)), ), margin: const EdgeInsets.symmetric( horizontal: 15, vertical: 29), child: TextButton( onPressed: controller.redeemSecretNumber, child: GetBuilder( builder: (HomeController c) { return TextWidget( text: 'entered_card_secret_num'.tr, fontSize: 18, fontWeight: FontWeight.normal, color: Colors.white, ); }, ), ), ), const Spacer(), TextButton( onPressed: () { Get.offNamed(Routes.HOME); }, child: Container( decoration: BoxDecoration( border: Border( bottom: BorderSide( color: brandColor, width: 1, ), ), ), child: TextWidget( color: brandColor, fontSize: 26, text: 'backfrom_card_secret_num'.tr, fontWeight: FontWeight.w400, ), ), ), const SizedBox(height: 30), ], ) : Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ const SizedBox(height: 330), SvgPicture.asset( 'assets/success_fill.svg', width: 200, height: 200, ), const SizedBox(height: 20), TextWidget( text: 'Top_up_status'.tr, color: brandColor, fontSize: 22, ), const Spacer(), TextButton( onPressed: () { Get.offNamed(Routes.HOME); }, child: Container( decoration: BoxDecoration( border: Border( bottom: BorderSide( color: brandColor, width: 1, ), ), ), child: TextWidget( color: brandColor, fontSize: 20, text: 'backfrom_card_secret_num'.tr, fontWeight: FontWeight.w400, ), ), ), const SizedBox(height: 20), ], ), ) : Center( child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ const SizedBox(height: 330), CircularProgressIndicator( color: brandColor, strokeWidth: 2, ), const SizedBox(height: 30), TextWidget( text: 'Top_up_status_waiting'.tr, color: Colors.black, fontSize: 22, ), ], ), ), Container( height: 250, decoration: BoxDecoration( color: brandColor, image: const DecorationImage( image: AssetImage('assets/background.png'), fit: BoxFit.fill, ), ), child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.end, children: [ SizedBox( height: MediaQuery.of(context).viewPadding.top, ), Container( margin: const EdgeInsets.symmetric( horizontal: 15, ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Container( margin: const EdgeInsets.only( top: 5, right: 15, ), child: Row( children: [ SvgPicture.asset( "assets/2/icon.svg", height: 20, width: 71.16, ), const SizedBox(width: 10), Image.asset("assets/logo.png"), ], ), ), const SizedBox(width: 10), Row( children: [ Text( user?.data?.firstname ?? ' . . . ', style: const TextStyle( fontSize: 20, color: Colors.white, fontWeight: FontWeight.normal, ), ), IconButton( onPressed: () { scaffoldKey.currentState?.openEndDrawer(); }, icon: const Icon( Icons.menu, color: Colors.white, size: 40, ), ), ], ), ], ), ), Container( margin: const EdgeInsets.symmetric(horizontal: 20), child: Column( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end, children: [ TextWidget( text: 'subscription_type'.tr, color: Colors.white, fontSize: 18, fontWeight: FontWeight.w300, textAlign: TextAlign.start, ), const SizedBox(height: 5), GetBuilder( init: HomeController(), builder: (HomeController c) { return TextWidget( text: c.profileName ?? ' . . . ', color: Colors.white, fontSize: 32, fontWeight: FontWeight.bold, textAlign: TextAlign.center, ); }), ], ), ), const SizedBox(height: 5), ], ), ), ], ); }, ), ), ); } }