import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:grostore/app_lang.dart'; import 'package:grostore/configs/style_config.dart'; import 'package:grostore/configs/theme_config.dart'; import 'package:grostore/constant/country_code.dart'; import 'package:grostore/constant/country_search.dart'; import 'package:grostore/custom_ui/Button.dart'; import 'package:grostore/custom_ui/BoxDecorations.dart'; import 'package:grostore/custom_ui/input_decorations.dart'; import 'package:grostore/helpers/common_functions.dart'; import 'package:grostore/helpers/device_info_helper.dart'; import 'package:grostore/presenters/auth/auth_presenter.dart'; import 'package:grostore/screens/auth/login.dart'; import 'package:intl_phone_number_input/intl_phone_number_input.dart'; import 'package:provider/provider.dart'; import '../../custom_ui/auth_ui.dart'; class Registration extends StatefulWidget { @override _RegistrationState createState() => _RegistrationState(); } class _RegistrationState extends State { @override void initState() { super.initState(); } @override void dispose() { super.dispose(); } @override Widget build(BuildContext context) { Provider.of(context).setContext(context); return AuthScreen.buildScreen( context, buildBody(context, getWidth(context))); } Widget buildBody(BuildContext context, double screenWidth) { return Consumer(builder: (context, data, child) { return Container( alignment: Alignment.center, padding: EdgeInsets.symmetric(horizontal: StyleConfig.padding), width: screenWidth * (3 / 4), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ /// #Create New Account Container( width: getWidth(context), padding: const EdgeInsets.only(bottom: 4.0), child: Text( AppLang.local(context).create_new_account_ucf, style: StyleConfig.fs24fwBold, textAlign: TextAlign.center, ), ), /// #Name Padding( padding: const EdgeInsets.only(bottom: 4.0), child: Text( AppLang.local(context).name, style: TextStyle( color: ThemeConfig.fontColor, fontWeight: FontWeight.w600), ), ), Padding( padding: const EdgeInsets.only(bottom: 8.0), child: Container( height: 36, child: TextField( controller: data.regNameController, autofocus: false, // decoration:InputDecoration( // focusedBorder: OutlineInputBorder( // borderRadius: BorderRadius.all(Radius.circular(5)), // borderSide: BorderSide( // color: ThemeConfig.red // ) // ) // ) decoration: InputDecorations.basic( prefixIcon: Icon( Icons.person_outline, size: 18, color: ThemeConfig.mediumGrey, ), hint_text: "Mr.John"), ), ), ), /// #Phone Number Padding( padding: const EdgeInsets.only(bottom: 4.0), child: Text( AppLang.local(context).phone, style: TextStyle( color: ThemeConfig.fontColor, fontWeight: FontWeight.w600), ), ), Padding( padding: const EdgeInsets.only(bottom: 8.0), child: Container( decoration: BoxDecorations.basic(), height: 36, child: Row( children: [ Padding( padding: const EdgeInsets.symmetric(horizontal: 14.0), child: Icon( Icons.phone, size: 18, color: ThemeConfig.mediumGrey, ), ), // Button( // minWidth: 80, // onPressed: () { // showDialog( // context: context, // builder: (context) { // return buildFilterDialog(data); // }); // }, // child: Row( // children: [ // Padding( // padding: const EdgeInsets.all(8.0), // child: Image.asset( // "${getAssetFlag(data.regCountry.code.toLowerCase())}.png"), // ), // Text( // data.regCountry.dial_code, // style: StyleConfig.fs14fwNormal, // ) // ], // ), // ), Text( "+998", style: StyleConfig.fs14fwNormal, ), Container( padding: const EdgeInsets.only(left: 10), width: getWidth(context) - 200, child: TextField( style: StyleConfig.fs14fwNormal, decoration: const InputDecoration.collapsed( hintText: "XX XXX XXX"), controller: data.regPhoneNumberController, ), ) ], )), ), /// #Password Padding( padding: const EdgeInsets.only(bottom: 4.0), child: Text( AppLang.local(context).password, style: TextStyle( color: ThemeConfig.fontColor, fontWeight: FontWeight.w600), ), ), Padding( padding: const EdgeInsets.only(bottom: 8.0), child: Column( crossAxisAlignment: CrossAxisAlignment.end, children: [ Container( height: 36, child: TextField( controller: data.regPasswordController, autofocus: false, obscureText: true, enableSuggestions: false, autocorrect: false, decoration: InputDecorations.basic( prefixIcon: Icon( Icons.lock, size: 18, color: ThemeConfig.mediumGrey, ), hint_text: "• • • • • • • •"), ), ), Text( AppLang.local(context).password_must_be_at_last_6_digit, style: TextStyle( color: ThemeConfig.lightGrey, fontStyle: FontStyle.italic), ) ], ), ), Padding( padding: const EdgeInsets.only(bottom: 4.0), child: Text( AppLang.local(context).confirm_password_ucf, style: TextStyle( color: ThemeConfig.fontColor, fontWeight: FontWeight.w600), ), ), Padding( padding: const EdgeInsets.only(bottom: 8.0), child: Container( height: 36, child: TextField( controller: data.regPasswordConfirmController, autofocus: false, obscureText: true, enableSuggestions: false, autocorrect: false, decoration: InputDecorations.basic( prefixIcon: Icon( Icons.lock, size: 18, color: ThemeConfig.mediumGrey, ), hint_text: "• • • • • • • •"), ), ), ), /// #Send button Padding( padding: const EdgeInsets.only(top: 30.0), child: Container( height: 45, child: Button.minSize( width: getWidth(context), height: 50, color: ThemeConfig.red, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(6.0))), child: Text( AppLang.local(context).sign_up_ucf, style: const TextStyle( color: Colors.white, fontSize: 14, fontWeight: FontWeight.w600), ), onPressed: () { data.onPressSignUp(); }), ), ), /// #Text Padding( padding: const EdgeInsets.only(top: 20.0), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Center( child: Text( AppLang.local(context).already_have_an_account, style: TextStyle(color: ThemeConfig.fontColor, fontSize: 12), )), const SizedBox( width: 10, ), /// #login route text Button( minWidth: 20, child: Text( AppLang.local(context).login, style: TextStyle( color: ThemeConfig.red, fontSize: 14, fontWeight: FontWeight.w600), ), onPressed: () { Navigator.push(context, MaterialPageRoute(builder: (context) { return const Login(); })); }, ), ], ), ), ], ), ); }); } // Country country = Country(name:"Uzbekistan" , dial_code: "+998", code: "+998"); // AlertDialog buildFilterDialog(AuthPresenter data) { // return AlertDialog( // title: const Text('Search Country'), // content: Container( // height: 300, // child: Column( // mainAxisSize: MainAxisSize.min, // children: [ // TextField( // onChanged: data.filterCountry, // decoration: const InputDecoration( // hintText: 'Search', // ), // ), // const SizedBox(height: 16.0), // Expanded( // child: SingleChildScrollView( // child: Consumer( // builder: (context, filterData, child) { // return Column( // children: List.generate(filterData.filteredCountry.length, // (index) { // country = filterData.filteredCountry[index]; // return ListTile( // leading: Image.asset( // getAssetFlag("${country.code.toLowerCase()}.png"), // height: 30, // width: 30, // ), // title: Text(country.name), // onTap: () { // // data.onChangeCountry(country); // Navigator.of(context).pop(); // filterData.filteredCountry = filterData.country; // }, // ); // }), // ); // }), // ), // ), // ], // ), // ), // ); // } }