|  |  |  | import 'package:easy_localization/easy_localization.dart'; | 
					
						
							|  |  |  | import 'package:flutter/gestures.dart'; | 
					
						
							|  |  |  | import 'package:flutter/material.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/core/app_assets.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/core/app_state.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/core/dependencies.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/core/enums.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/core/utils/size_utils.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/core/utils/utils.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/extensions/string_extensions.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/extensions/widget_extensions.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/generated/locale_keys.g.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/theme/colors.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/widgets/appbar/app_bar_widget.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/widgets/buttons/custom_button.dart' show CustomButton; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/widgets/dropdown/country_dropdown_widget.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/widgets/dropdown/dropdown_widget.dart'; | 
					
						
							|  |  |  | import 'package:hmg_patient_app_new/widgets/input_widget.dart'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class RegisterNew extends StatefulWidget { | 
					
						
							|  |  |  |   @override | 
					
						
							|  |  |  |   _RegisterNew createState() => _RegisterNew(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class _RegisterNew extends State<RegisterNew> { | 
					
						
							|  |  |  |   bool isTermsAccepted = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							|  |  |  |   void initState() { | 
					
						
							|  |  |  |     super.initState(); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							|  |  |  |   void dispose() { | 
					
						
							|  |  |  |     super.dispose(); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							|  |  |  |   Widget build(BuildContext context) { | 
					
						
							|  |  |  |     AppState appState = getIt.get<AppState>(); | 
					
						
							|  |  |  |     return Scaffold( | 
					
						
							|  |  |  |       backgroundColor: AppColors.bgScaffoldColor, | 
					
						
							|  |  |  |       appBar: CustomAppBar( | 
					
						
							|  |  |  |         onBackPressed: () { | 
					
						
							|  |  |  |           Navigator.of(context).pop(); | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         onLanguageChanged: (String value) { | 
					
						
							|  |  |  |           // context.setLocale(value == 'en' ? Locale('ar', 'SA') : Locale('en', 'US'));
 | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |       ), | 
					
						
							|  |  |  |       body: GestureDetector( | 
					
						
							|  |  |  |         onTap: () { | 
					
						
							|  |  |  |           FocusScope.of(context).unfocus(); | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         child: ScrollConfiguration( | 
					
						
							|  |  |  |           behavior: ScrollConfiguration.of(context).copyWith(overscroll: false, physics: const ClampingScrollPhysics()), | 
					
						
							|  |  |  |           child: NotificationListener<OverscrollIndicatorNotification>( | 
					
						
							|  |  |  |             onNotification: (notification) { | 
					
						
							|  |  |  |               notification.disallowIndicator(); | 
					
						
							|  |  |  |               return true; | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |             child: SingleChildScrollView( | 
					
						
							|  |  |  |               physics: ClampingScrollPhysics(), | 
					
						
							|  |  |  |               padding: EdgeInsets.symmetric(horizontal: 24.h), | 
					
						
							|  |  |  |               child: Column( | 
					
						
							|  |  |  |                   mainAxisSize: MainAxisSize.min, | 
					
						
							|  |  |  |                   crossAxisAlignment: CrossAxisAlignment.start, | 
					
						
							|  |  |  |                   children: [ | 
					
						
							|  |  |  |                   Utils.showLottie(context: context, assetPath: 'assets/animations/lottie/register.json', width: 200.h, height: 200.h, fit: BoxFit.cover, repeat: true), | 
					
						
							|  |  |  |               SizedBox(height: 16.h), | 
					
						
							|  |  |  |               LocaleKeys.prepareToElevate.tr().toText32(isBold: true), | 
					
						
							|  |  |  |               SizedBox(height: 24.h), | 
					
						
							|  |  |  |               Directionality( | 
					
						
							|  |  |  |                 textDirection: Directionality.of(context), | 
					
						
							|  |  |  |                 child: Container( | 
					
						
							|  |  |  |                     decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(24)), | 
					
						
							|  |  |  |                     padding: EdgeInsets.symmetric(horizontal: 16.h), | 
					
						
							|  |  |  |                     child: Column( | 
					
						
							|  |  |  |                       children: [ | 
					
						
							|  |  |  |                       CustomCountryDropdown( | 
					
						
							|  |  |  |                       countryList: Country.values, | 
					
						
							|  |  |  |                       onCountryChange: (Country? value) {}, | 
					
						
							|  |  |  |                       isRtl: Directionality.of(context) == TextDirection.LTR, | 
					
						
							|  |  |  |                     ).withVerticalPadding(8.h), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     // DropdownWidget(
 | 
					
						
							|  |  |  |                     //   labelText: LocaleKeys.country.tr(),
 | 
					
						
							|  |  |  |                     //   hintText: LocaleKeys.ksa.tr(),
 | 
					
						
							|  |  |  |                     //   isEnable: true,
 | 
					
						
							|  |  |  |                     //   selectedValue: appState.getLanguageID(context) == "1" ? "selectedCountry.nameArabic" : "selectedCountry.displayName",
 | 
					
						
							|  |  |  |                     //   dropdownItems: Country.values.map((e) => appState.getLanguageID(context) == " 1" ? e.displayName : e.displayName).toList(),
 | 
					
						
							|  |  |  |                     //   onChange: (val) {
 | 
					
						
							|  |  |  |                     //     if (val != null) {}
 | 
					
						
							|  |  |  |                     //   },
 | 
					
						
							|  |  |  |                     //   isBorderAllowed: false,
 | 
					
						
							|  |  |  |                     //   hasSelectionCustomIcon: true,
 | 
					
						
							|  |  |  |                     //   isAllowRadius: false,
 | 
					
						
							|  |  |  |                     //   padding: EdgeInsets.symmetric(vertical: 8.h),
 | 
					
						
							|  |  |  |                     //   selectionCustomIcon: AppAssets.arrow_down,
 | 
					
						
							|  |  |  |                     // ).withVerticalPadding(8),
 | 
					
						
							|  |  |  |                     Divider(height: 1.h), | 
					
						
							|  |  |  |                 TextInputWidget( | 
					
						
							|  |  |  |                     labelText: LocaleKeys.nationalIdNumber.tr(), | 
					
						
							|  |  |  |                     hintText: "xxxxxxxxx", | 
					
						
							|  |  |  |                     controller: TextEditingController(), | 
					
						
							|  |  |  |                     isEnable: true, | 
					
						
							|  |  |  |                     prefix: null, | 
					
						
							|  |  |  |                     isAllowRadius: true, | 
					
						
							|  |  |  |                     isBorderAllowed: false, | 
					
						
							|  |  |  |                     isAllowLeadingIcon: true, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     autoFocus: true, | 
					
						
							|  |  |  |                     padding: EdgeInsets.symmetric(vertical: 8.h), | 
					
						
							|  |  |  |                     leadingIcon: AppAssets.student_card, | 
					
						
							|  |  |  |                     onChange: (value) { | 
					
						
							|  |  |  |                       print(value); | 
					
						
							|  |  |  |                     }).withVerticalPadding(8), | 
					
						
							|  |  |  |                 Divider(height: 1), | 
					
						
							|  |  |  |                 TextInputWidget( | 
					
						
							|  |  |  |                   labelText: LocaleKeys.dob.tr(), | 
					
						
							|  |  |  |                   hintText: "11 July, 1994", | 
					
						
							|  |  |  |                   controller: TextEditingController(), | 
					
						
							|  |  |  |                   isEnable: true, | 
					
						
							|  |  |  |                   prefix: null, | 
					
						
							|  |  |  |                   isAllowRadius: true, | 
					
						
							|  |  |  |                   isBorderAllowed: false, | 
					
						
							|  |  |  |                   isAllowLeadingIcon: true, | 
					
						
							|  |  |  |                   padding: EdgeInsets.symmetric(vertical: 8.h), | 
					
						
							|  |  |  |                   leadingIcon: AppAssets.birthday_cake, | 
					
						
							|  |  |  |                   onChange: (value) {}, | 
					
						
							|  |  |  |                 ).withVerticalPadding(8), | 
					
						
							|  |  |  |                 ], | 
					
						
							|  |  |  |               ), | 
					
						
							|  |  |  |             ), | 
					
						
							|  |  |  |           ), | 
					
						
							|  |  |  |           SizedBox(height: 25.h), | 
					
						
							|  |  |  |           GestureDetector( | 
					
						
							|  |  |  |             onTap: () {}, | 
					
						
							|  |  |  |             child: Row( | 
					
						
							|  |  |  |               children: [ | 
					
						
							|  |  |  |                 AnimatedContainer( | 
					
						
							|  |  |  |                   duration: const Duration(milliseconds: 200), | 
					
						
							|  |  |  |                   height: 24.h, | 
					
						
							|  |  |  |                   width: 24.h, | 
					
						
							|  |  |  |                   decoration: BoxDecoration( | 
					
						
							|  |  |  |                     color: isTermsAccepted ? const Color(0xFFE92227) : Colors.transparent, | 
					
						
							|  |  |  |                     borderRadius: BorderRadius.circular(6), | 
					
						
							|  |  |  |                     border: Border.all( | 
					
						
							|  |  |  |                       color: isTermsAccepted ? const Color(0xFFE92227) : Colors.grey, | 
					
						
							|  |  |  |                       width: 2.h, | 
					
						
							|  |  |  |                     ), | 
					
						
							|  |  |  |                   ), | 
					
						
							|  |  |  |                   child: isTermsAccepted ? Icon(Icons.check, size: 16.fSize, color: Colors.white) : null, | 
					
						
							|  |  |  |                 ), | 
					
						
							|  |  |  |                 SizedBox(width: 12.h), | 
					
						
							|  |  |  |                 Expanded( | 
					
						
							|  |  |  |                   child: Text( | 
					
						
							|  |  |  |                     LocaleKeys.iAcceptTermsConditions.tr(), | 
					
						
							|  |  |  |                     style: context.dynamicTextStyle(fontSize: 14.fSize, fontWeight: FontWeight.w500, color: Color(0xFF2E3039)), | 
					
						
							|  |  |  |                   ), | 
					
						
							|  |  |  |                 ), | 
					
						
							|  |  |  |               ], | 
					
						
							|  |  |  |             ), | 
					
						
							|  |  |  |           ), | 
					
						
							|  |  |  |           SizedBox(height: 25.h), | 
					
						
							|  |  |  |           CustomButton( | 
					
						
							|  |  |  |             text: "Register", | 
					
						
							|  |  |  |             icon: AppAssets.note_edit, | 
					
						
							|  |  |  |             onPressed: () {}, | 
					
						
							|  |  |  |           ), | 
					
						
							|  |  |  |           SizedBox(height: 14), | 
					
						
							|  |  |  |           Center( | 
					
						
							|  |  |  |             child: RichText( | 
					
						
							|  |  |  |               textAlign: TextAlign.center, | 
					
						
							|  |  |  |               text: TextSpan( | 
					
						
							|  |  |  |                 style: context.dynamicTextStyle( | 
					
						
							|  |  |  |                   color: Colors.black, | 
					
						
							|  |  |  |                   fontSize: 16.fSize, | 
					
						
							|  |  |  |                   height: 26 / 16, | 
					
						
							|  |  |  |                   fontWeight: FontWeight.w500, | 
					
						
							|  |  |  |                 ), | 
					
						
							|  |  |  |                 children: <TextSpan>[ | 
					
						
							|  |  |  |                   TextSpan(text: LocaleKeys.alreadyHaveAccount.tr(), style: context.dynamicTextStyle()), | 
					
						
							|  |  |  |                   TextSpan(text: "  "), | 
					
						
							|  |  |  |                   TextSpan( | 
					
						
							|  |  |  |                     text: LocaleKeys.loginNow.tr(), | 
					
						
							|  |  |  |                     style: context.dynamicTextStyle( | 
					
						
							|  |  |  |                       color: AppColors.primaryRedColor, | 
					
						
							|  |  |  |                       fontSize: 16.fSize, | 
					
						
							|  |  |  |                       height: 26 / 16, | 
					
						
							|  |  |  |                       fontWeight: FontWeight.w500, | 
					
						
							|  |  |  |                     ), | 
					
						
							|  |  |  |                     recognizer: TapGestureRecognizer() | 
					
						
							|  |  |  |                       ..onTap = () { | 
					
						
							|  |  |  |                         Navigator.of(context).pop(); | 
					
						
							|  |  |  |                       }, | 
					
						
							|  |  |  |                   ), | 
					
						
							|  |  |  |                 ], | 
					
						
							|  |  |  |               ), | 
					
						
							|  |  |  |             ), | 
					
						
							|  |  |  |           ), | 
					
						
							|  |  |  |           SizedBox(height: 30), | 
					
						
							|  |  |  |           ], | 
					
						
							|  |  |  |         ), | 
					
						
							|  |  |  |       ), | 
					
						
							|  |  |  |     ),) | 
					
						
							|  |  |  |     , | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |