diff --git a/lib/screens/auth/forgot_password.dart b/lib/screens/auth/forgot_password.dart index e4ac16b..949b0cf 100644 --- a/lib/screens/auth/forgot_password.dart +++ b/lib/screens/auth/forgot_password.dart @@ -1,5 +1,6 @@ import 'package:books_app/constants/colors.dart'; import 'package:books_app/constants/routes.dart'; +import 'package:books_app/services/auth.dart'; import 'package:books_app/widgets/auth/auth_navigation.dart'; import 'package:books_app/widgets/auth/auth_page_title.dart'; import 'package:books_app/widgets/button.dart'; @@ -16,6 +17,7 @@ class _ForgotPasswordScreenState extends State { TextEditingController _emailController = TextEditingController(); // final BackendService authService = BackendService(); + String? _message; @override Widget build(BuildContext context) { return Scaffold( @@ -25,6 +27,7 @@ class _ForgotPasswordScreenState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ + showAlert() , const AuthPageTitle(name: 'Reset password'), // AuthErrorMessage(errorMessage: error.toString()), Form( @@ -38,29 +41,62 @@ class _ForgotPasswordScreenState extends State { Button( name: 'Continue', color: blackButton, - myFunction: () { + myFunction: () async { + await FirebaseAuthService() + .ResetPassword(_emailController.text); + setState(() { + _message = + 'Password reset link has been sent to you on email ${_emailController.text}.You will be redirected to signIn page'; + }); + + print(_message); + await Future.delayed(const Duration(seconds: 4), () {}); Navigator.pushReplacementNamed(context, Routes.INITIAL_PAGE); }, ) - // AuthButton( - // text: 'Continue', - // formKey: formKey, - // onClick: onSubmit, - // onSuccess: onSuccess, - // onError: onError, - // ) ], ), ), ); } - // Future onSubmit() async { - // return authService.forgotPassword(email).toString(); - // } - - // void onSuccess() { - // Navigator.of(context).push(MaterialPageRoute( - // builder: (BuildContext context) => ResetPasswordScreen(email: email))); - // } + Widget showAlert() { + if (_message != null) { + return Align( + alignment: Alignment.topCenter, + child: Container( + color: Colors.amberAccent, + width: double.infinity, + padding: const EdgeInsets.all(8.0), + child: Row( + children: [ + const Padding( + padding: EdgeInsets.only(right: 8.0), + child: Icon(Icons.error_outline), + ), + Expanded( + child: Text( + _message!, + maxLines: 3, + ), + ), + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: IconButton( + icon: const Icon(Icons.close), + onPressed: () { + setState(() { + _message = ''; + }); + }, + ), + ) + ], + ), + ), + ); + } + else + return Container(); + } } diff --git a/lib/screens/auth/register.dart b/lib/screens/auth/register.dart index 119db23..261f226 100644 --- a/lib/screens/auth/register.dart +++ b/lib/screens/auth/register.dart @@ -1,12 +1,9 @@ import 'package:books_app/constants/colors.dart'; -import 'package:books_app/constants/routes.dart'; import 'package:books_app/services/auth.dart'; -import 'package:books_app/widgets/auth/auth_error_message.dart'; import 'package:books_app/widgets/auth/auth_navigation.dart'; import 'package:books_app/widgets/auth/auth_page_title.dart'; import 'package:books_app/widgets/button.dart'; import 'package:books_app/widgets/text_field.dart'; -import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; class RegisterScreen extends StatefulWidget { diff --git a/lib/screens/book_desciption.dart b/lib/screens/book_desciption.dart index 1757f10..bd5a0c8 100644 --- a/lib/screens/book_desciption.dart +++ b/lib/screens/book_desciption.dart @@ -1,4 +1,4 @@ -import 'package:books_app/constants/colors.dart'; + import 'package:books_app/constants/routes.dart'; import 'package:books_app/providers/book.dart'; import 'package:books_app/services/auth.dart'; diff --git a/lib/services/auth.dart b/lib/services/auth.dart index 4bf0c92..33caaba 100644 --- a/lib/services/auth.dart +++ b/lib/services/auth.dart @@ -159,7 +159,9 @@ class FirebaseAuthService extends ChangeNotifier { } } } - + FutureResetPassword(String email) async { + await firebaseAuth.sendPasswordResetEmail(email: email); + } // sign out from app Future signOut() async { await firebaseAuth.signOut();