import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:tangheem/api/user_api_client.dart'; import 'package:tangheem/classes/colors.dart'; import 'package:tangheem/classes/utils.dart'; import 'package:tangheem/extensions/int_extensions.dart'; import 'package:tangheem/extensions/string_extensions.dart'; import 'package:tangheem/extensions/widget_extensions.dart'; import 'package:tangheem/ui/screens/contact_us_screen.dart'; import 'package:tangheem/widgets/common_textfield_widget.dart'; class ForgotPasswordScreen extends StatefulWidget { static const String routeName = "/forgot_password"; ForgotPasswordScreen({Key key}) : super(key: key); @override _ForgotPasswordScreenState createState() { return _ForgotPasswordScreenState(); } } class _ForgotPasswordScreenState extends State { TextEditingController _emailController = TextEditingController(); @override void initState() { super.initState(); } @override void dispose() { super.dispose(); } void forgotPassword(String email) async { Utils.showLoading(context); try { await UserApiClient().forgotPassword(email); Utils.showToast("تم إرسال رابط تغيير كلمة المرور إلى بريدك الإلكتروني"); } catch (ex) { if (mounted) Utils.handleException(ex, null); Utils.hideLoading(context); return; } finally { Utils.hideLoading(context); } //getOTP(email); } void verifyOTP(String email, int otp) async { Utils.showLoading(context); try { await UserApiClient().verifyOTP(email, otp); } catch (ex) { if (mounted) Utils.handleException(ex, null); Utils.hideLoading(context); return; } finally { Utils.hideLoading(context); } Navigator.pop(context); //changePassword(email, otp); } void updatePassword(String email, int otp, String password) async { Utils.showLoading(context); try { //await UserApiClient().updatePassword(email, otp, password); } catch (ex) { if (mounted) Utils.handleException(ex, null); Utils.hideLoading(context); return; } finally { Utils.hideLoading(context); } Navigator.pop(context); Utils.showToast("تم تغيير كلمة المرور بنجاح"); Navigator.pop(context); } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: ColorConsts.greyF8Color, body: SingleChildScrollView( padding: EdgeInsets.only(top: 100, bottom: 24, left: 24, right: 24), physics: BouncingScrollPhysics(), child: Column( children: [ Image.asset("assets/icons/new/Tangeem-logo.png", width: 116, height: 62), 30.height, Container( width: MediaQuery.of(context).size.width, decoration: BoxDecoration(borderRadius: BorderRadius.circular(20.0), color: Colors.white), margin: EdgeInsets.only(top: 6, bottom: 20), padding: EdgeInsets.only(top: 50, bottom: 20, left: 11, right: 11), child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisSize: MainAxisSize.min, children: [ SvgPicture.asset("assets/icons/key.svg", width: 100, height: 72), 25.height, "استعادة كلمة المرور".toText(18, color: ColorConsts.darkText), 18.height, "يمكنك إعادة تعيين كلمة المرور عبر حساب بريدك الإلكتروني".toText(13, color: ColorConsts.grey9FColor, textAlign: TextAlign.center).paddingOnly(left: 77, right: 77), 25.height, CommonTextFieldWidget(hint: "البريد الإلكتروني المسجل", controller: _emailController, isEmail: true), ], ), ), SizedBox( width: double.infinity, height: 50, child: TextButton( onPressed: () { if (_emailController.text.length < 1) { Utils.showToast("يرجى إدخال البريد الإلكتروني"); return; } else if (!_emailController.text.isValidEmail()) { Utils.showToast("صيغة البريد الإلكتروني خاطئة"); return; } forgotPassword(_emailController.text); }, style: TextButton.styleFrom( backgroundColor: ColorConsts.darkText, foregroundColor: Colors.white, textStyle: TextStyle(fontSize: 18), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(25.0), ), ), child: Text("إعادة تعيين كلمة المرور"), ), ).paddingOnly(left: 11, right: 11, bottom: 28), Column( mainAxisSize: MainAxisSize.min, children: [ SvgPicture.asset("assets/icons/new/contact_us.svg", width: 26, height: 24, color: ColorConsts.greyC4Color), 8.height, "اتصل بنا".toText(14, color: ColorConsts.greyC4Color), ], ).onPress(() { Navigator.pushNamed(context, ContactUsScreen.routeName); }) ], ), ), ); } // void getOTP(String email) { // showDialog( // context: context, // barrierColor: ColorConsts.secondaryWhite.withOpacity(0.8), // builder: (BuildContext context) => OTPDialog( // onOTP: (otp) => verifyOTP(email, otp), // ), // ); // } // // void changePassword(String email, int otp) { // showDialog( // context: context, // barrierColor: ColorConsts.secondaryWhite.withOpacity(0.8), // builder: (BuildContext context) => ChangePasswordDialog( // onPassword: (password) => updatePassword(email, otp, password), // ), // ); // } }