import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:lucide_icons/lucide_icons.dart'; import 'package:provider/provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; import '../config/AppSnackbar.dart'; import '../config/constants/arabe.dart' as Language; import '../config/custom_text.dart'; import '../providers/authentification_provider.dart'; import '../providers/language_provider.dart'; import '../providers/utils_singleton.dart'; import '../routes/app_routes.dart'; import '../services/Sockets/PubNubManager.dart'; import '../utils/colors.dart'; import '../widgets/custom_button.dart'; import '../widgets/phone_input_field.dart'; import 'NewUiScreen/PermissionModals/ProfileCompletedModal.dart'; import 'NewUiScreen/Registration/popUpwidget.dart'; import 'NewUiScreen/RegistrationScreen.dart'; import 'NewUiScreen/SelectVerificationReceive.dart'; import 'NewUiScreen/Selfi/AddProfilePicture.dart'; class Addphonenumber extends StatefulWidget { const Addphonenumber({super.key}); @override State createState() => _AddphonenumberState(); } class _AddphonenumberState extends State { final TextEditingController passwordController = TextEditingController(); String _phoneNumber = ''; String _countryCode = ''; String completePhoneNumber = ''; bool isChecked = false; bool isVisible = true; final _formKey = GlobalKey(); int currentPermissionStep = 0; // 0: location, 1: contacts, 2: notifications bool showRegistration = true; void _showProfileCompletedModal(BuildContext context, bool isArabic) { showDialog( context: context, barrierDismissible: false, builder: (context) => Dialog( backgroundColor: Colors.transparent, child: ProfileCompletedModal( isArabic: isArabic, onContinue: () { Navigator.push( context, MaterialPageRoute( builder: (context) => const AddProfilePicture())); setState(() { showRegistration = false; currentPermissionStep = 0; }); }, ), ), ); } @override Widget build(BuildContext context) { final languageProvider = context.watch(); bool isArabic = languageProvider.currentLangCode == Language.ar; final signUpProvider = context.watch(); //final isValid = isPhoneValid(completePhoneNumber); return SafeArea( child: Scaffold( resizeToAvoidBottomInset: false, backgroundColor: AppNewColors.whiteBackGround, body: Padding( padding: const EdgeInsets.symmetric(horizontal: 16), child: Form( key: _formKey, child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start, children: [ const SizedBox(height: 35), Txt( text: 'Getting started', style: TextStyle( color: AppNewColors.titleTextColor, fontSize: 26, fontFamily: isArabic ? "Readex_Pro" : 'Inter', fontWeight: FontWeight.w600, height: 1.23, ), ), const SizedBox(height: 8), Txt( text:'let’s embark in a new journey with wanis taxi', style: TextStyle( color: AppNewColors.grayTxtColor, fontSize: 18, fontFamily: isArabic ? "Readex_Pro" : 'Inter', fontWeight: FontWeight.w500, height: 1.33, ), ), const SizedBox(height: 32), // Phone Input Field Directionality( textDirection: isArabic ? TextDirection.rtl : TextDirection.ltr, child: PhoneInputField( onNumberChange: (phoneNumber) { setState(() { _phoneNumber = phoneNumber.number; _countryCode = phoneNumber.countryCode; completePhoneNumber = _countryCode + _phoneNumber; }); }, validator: (phoneNumber) { if (phoneNumber == null || phoneNumber.number.isEmpty) { return languageProvider .translate('Please enter a valid phone number'); } return null; }, ), ), const SizedBox(height: 30), CustomButton( onClick: () async { if (await signUpProvider.isPhoneNumberExist(completePhoneNumber)) { AppDialog.showPhoneNumberError( context, title: "Number used before", message: "Please enter a new mobile number with the country code.", btTitle:"Back to login", icon: LucideIcons.x, onBackToLogin: () { // Handle back to login navigation // For example: // Navigator.pushReplacementNamed(context, '/login'); }, ); return; } print('Complete Phone Number: 01'); bool result = await context.read().sendsimplesmsverification(completePhoneNumber); if(result){ Get.toNamed(AppRoutes.verifOtp, arguments: { 'phoneNumber': completePhoneNumber, 'isForgetPassword':false, 'isupdatephonenumber':true}, ); }else{ AppSnackbar.showError("Error", "error saving phone-number please try again later!"); } }, fontSize: 18, width: double.infinity, height: 40, borderRadius: 10, txtColor: AppNewColors.white, title: 'Next', backgroundColor: AppNewColors.primaryBtnColor, borderColor: AppNewColors.primaryBtnColor, isloading: signUpProvider.loader, loadercolor: AppNewColors.white, ), ], ), ), ), ), ); } }