import 'package:wanisdriver/Provider/utils_singleton.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; import '../../Provider/language_provider.dart'; import '../../Provider/passwordProvider.dart'; import '../../config/AppSnackbar.dart'; import '../../config/constants/arabe.dart' as Language; import '../../utils/colors.dart'; import '../../widgets/CustomTextFieldWidget.dart'; import '../../widgets/PhoneInputField.dart'; import '../../widgets/PurpleHeader.dart'; import '../../widgets/custom_button.dart'; import '../../widgets/custom_text.dart'; import '../OtpVerificationScreen.dart'; class ChangePasswordFirstStepScreen extends StatefulWidget { const ChangePasswordFirstStepScreen({super.key}); @override State createState() => _ChangePasswordFirstStepScreenState(); } class _ChangePasswordFirstStepScreenState extends State { String _phoneNumber = ''; String _countryCode = ''; @override Widget build(BuildContext context) { final languageProvider = context.watch(); bool isArabic = languageProvider.currentLangCode == Language.ar; final passwordProvider = context.watch(); final emailController = passwordProvider.emailController; final phoneController = passwordProvider.phoneController; return Scaffold( backgroundColor: Colors.white, appBar: AppBar( backgroundColor: Colors.white, // title: const Txt( // text: 'Change password', // style: TextStyle( // fontSize: 32.0, // fontWeight: FontWeight.bold, // letterSpacing: 1, // color: Colors.black, // ), // ), ), body: Padding( padding: const EdgeInsets.symmetric(horizontal: 14.0, vertical: 20), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Txt( text: "Forgot Password?", style: TextStyle( fontSize: 18, fontWeight: FontWeight.w700, fontFamily: isArabic ? 'Baloo_Bhaijaan_2' : 'Poppins', color: Colors.black, ), ), const SizedBox(height: 20), Txt( text: "Enter your email address below and we'll send you a link to reset your password.", style: TextStyle( fontSize: 15, fontWeight: FontWeight.w500, fontFamily: isArabic ? 'Baloo_Bhaijaan_2' : 'Poppins', color: Colors.black, ), ),const SizedBox(height: 30), // CustomTextFieldWidget( // controller: emailController, // label: 'Email', // icon: Icons.email_outlined, // isPassword: false, // keybordType: TextInputType.emailAddress, // ), CustomPhoneInputField( isArabic: isArabic, test: true, // This will now skip the 8-digit validation onNumberChange: (phoneNumber) { setState(() { _phoneNumber = phoneNumber.number; _countryCode = phoneNumber.countryCode; phoneController.text = _countryCode + _phoneNumber; }); }, validator: (phoneNumber) { if (phoneNumber == null || phoneNumber.number.isEmpty) { return languageProvider .translate('Please enter a valid phone number'); } return null; }, ), const Spacer(), Center( child: CustomButton( borderRadius: 25, height: 55, onClick: () async { final prefs = await SharedPreferences.getInstance(); var res = await passwordProvider.phoneForgetPassword(phoneController.text); if (res) { prefs.setString("token", ""); Navigator.push(context, MaterialPageRoute( builder: (context) => OtpVerificationScreen(isForgetPassword: true, phoneNumber: phoneController.text))); } // final emailRegex = // RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$'); // final upperCaseRegex = RegExp(r'[A-Z]'); // if (!emailRegex.hasMatch(emailController.text.trim())) { // // _showError("Please enter a valid email address."); // AppSnackbar.showError( // "Error", "Please enter a valid email address."); // return; // } // final passwordProvider = // Provider.of(context, listen: false); // passwordProvider.setEmail(emailController.text.trim()); // // passwordProvider.changePasswordFirstStep(); }, title: 'Change password', isloading: passwordProvider.loader, loadercolor: Colors.white, width: MediaQuery.of(context).size.width * 0.75, backgroundColor:Theme.of(context).brightness == Brightness.dark ?AppColors.darkPrimaryColor:AppColors.primaryColor, ), ) ], ), ), ); } }