mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-11-27 05:44:55 +00:00
password_changes&_routine_changes
This commit is contained in:
@ -237,22 +237,26 @@ class AuthCubit extends Cubit<AuthState> {
|
||||
}
|
||||
}
|
||||
|
||||
sendOtp() async {
|
||||
sendOtp({bool? isforget}) async {
|
||||
try {
|
||||
emit(AuthLoading());
|
||||
await AuthenticationAPI.sendOtp(
|
||||
body: {'email': email, 'type': 'VERIFICATION'});
|
||||
await AuthenticationAPI.sendOtp(body: {
|
||||
'email': email,
|
||||
'type': isforget == true ? 'PASSWORD' : 'VERIFICATION'
|
||||
});
|
||||
emit(AuthSignUpSuccess());
|
||||
} catch (_) {
|
||||
emit(AuthLoginError(message: 'Something went wrong'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<bool> reSendOtp() async {
|
||||
Future<bool> reSendOtp({bool? forget}) async {
|
||||
try {
|
||||
emit(AuthLoading());
|
||||
await AuthenticationAPI.sendOtp(
|
||||
body: {'email': email, 'type': 'VERIFICATION'});
|
||||
await AuthenticationAPI.sendOtp(body: {
|
||||
'email': email,
|
||||
'type': forget == true ? 'PASSWORD' : 'VERIFICATION'
|
||||
});
|
||||
emit(ResendOtpSuccess());
|
||||
return true;
|
||||
} catch (_) {
|
||||
@ -264,8 +268,11 @@ class AuthCubit extends Cubit<AuthState> {
|
||||
verifyOtp(bool isForgotPass) async {
|
||||
emit(AuthLoginLoading());
|
||||
try {
|
||||
final response = await AuthenticationAPI.verifyPassCode(
|
||||
body: {'email': email, 'type': 'VERIFICATION', 'otpCode': otpCode});
|
||||
final response = await AuthenticationAPI.verifyPassCode(body: {
|
||||
'email': email,
|
||||
'type': isForgotPass == true ? 'PASSWORD' : 'VERIFICATION',
|
||||
'otpCode': otpCode
|
||||
});
|
||||
if (response['statusCode'] == 200) {
|
||||
if (!isForgotPass) {
|
||||
emailController.text = email;
|
||||
@ -340,7 +347,9 @@ class AuthCubit extends Cubit<AuthState> {
|
||||
sendToForgetPassword({required String password}) async {
|
||||
try {
|
||||
emit(AuthForgetPassLoading());
|
||||
await AuthenticationAPI.forgetPassword(email: email, password: password);
|
||||
|
||||
await AuthenticationAPI.forgetPassword(
|
||||
email: email, password: password, otpCode: otpCode);
|
||||
emit(AuthForgetPassSuccess());
|
||||
} catch (_) {
|
||||
emit(AuthForgetPassError(message: 'Something went wrong'));
|
||||
|
||||
@ -15,13 +15,15 @@ import 'package:syncrow_app/utils/resource_manager/font_manager.dart';
|
||||
import 'package:syncrow_app/utils/resource_manager/styles_manager.dart';
|
||||
|
||||
class checkEmailPage extends StatelessWidget {
|
||||
const checkEmailPage({super.key});
|
||||
bool? forget;
|
||||
checkEmailPage({super.key, this.forget});
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final formKey = AuthCubit.get(context).checkEmailFormKey;
|
||||
|
||||
SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
|
||||
statusBarBrightness: Brightness.light, statusBarIconBrightness: Brightness.light));
|
||||
statusBarBrightness: Brightness.light,
|
||||
statusBarIconBrightness: Brightness.light));
|
||||
return BlocConsumer<AuthCubit, AuthState>(
|
||||
listener: (context, state) {
|
||||
if (state is AuthError) {
|
||||
@ -34,8 +36,8 @@ class checkEmailPage extends StatelessWidget {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => const OtpView(
|
||||
isForgetPage: true,
|
||||
builder: (context) => OtpView(
|
||||
isForgetPage: forget!,
|
||||
),
|
||||
));
|
||||
}
|
||||
@ -91,7 +93,9 @@ class checkEmailPage extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(
|
||||
height: MediaQuery.sizeOf(context).height / 5.5,
|
||||
height:
|
||||
MediaQuery.sizeOf(context).height /
|
||||
5.5,
|
||||
),
|
||||
TitleMedium(
|
||||
text: 'Forgot password?',
|
||||
@ -113,32 +117,39 @@ class checkEmailPage extends StatelessWidget {
|
||||
scrollPadding: EdgeInsets.zero,
|
||||
autocorrect: false,
|
||||
enableSuggestions: false,
|
||||
autofillHints: const [AutofillHints.email],
|
||||
validator: AuthCubit.get(context).emailAddressValidator,
|
||||
autofillHints: const [
|
||||
AutofillHints.email
|
||||
],
|
||||
validator: AuthCubit.get(context)
|
||||
.emailAddressValidator,
|
||||
onTapOutside: (event) {
|
||||
FocusScope.of(context).unfocus();
|
||||
},
|
||||
onChanged: (value) {
|
||||
AuthCubit.get(context).email = value;
|
||||
},
|
||||
decoration: defaultInputDecoration(context,
|
||||
decoration: defaultInputDecoration(
|
||||
context,
|
||||
hint: "Example@email.com"),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center,
|
||||
children: [
|
||||
Expanded(
|
||||
child: DefaultButton(
|
||||
isDone: state is AuthLoginSuccess,
|
||||
isLoading: state is AuthLoading,
|
||||
customButtonStyle: ButtonStyle(
|
||||
backgroundColor: MaterialStateProperty.all(
|
||||
backgroundColor:
|
||||
MaterialStateProperty.all(
|
||||
Colors.black.withOpacity(.25),
|
||||
),
|
||||
foregroundColor: MaterialStateProperty.all(
|
||||
foregroundColor:
|
||||
MaterialStateProperty.all(
|
||||
Colors.white,
|
||||
),
|
||||
),
|
||||
@ -146,11 +157,16 @@ class checkEmailPage extends StatelessWidget {
|
||||
'Send Code',
|
||||
),
|
||||
onPressed: () {
|
||||
AuthCubit.get(context).showValidationMessage = true;
|
||||
if (formKey.currentState!.validate()) {
|
||||
AuthCubit.get(context)
|
||||
.showValidationMessage = true;
|
||||
if (formKey.currentState!
|
||||
.validate()) {
|
||||
if ((state is! AuthLoading)) {
|
||||
AuthCubit.get(context).sendOtp();
|
||||
FocusScope.of(context).unfocus();
|
||||
AuthCubit.get(context)
|
||||
.sendOtp(
|
||||
isforget: forget);
|
||||
FocusScope.of(context)
|
||||
.unfocus();
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -160,14 +176,17 @@ class checkEmailPage extends StatelessWidget {
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(
|
||||
top: MediaQuery.sizeOf(context).height / 5.5),
|
||||
top: MediaQuery.sizeOf(context)
|
||||
.height /
|
||||
5.5),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
BodyLarge(
|
||||
text: "Do you have an account? ",
|
||||
style:
|
||||
context.displaySmall.copyWith(color: Colors.white),
|
||||
style: context.displaySmall
|
||||
.copyWith(color: Colors.white),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
@ -175,7 +194,8 @@ class checkEmailPage extends StatelessWidget {
|
||||
},
|
||||
child: BodyLarge(
|
||||
text: "Sign in",
|
||||
style: context.displaySmall.copyWith(
|
||||
style:
|
||||
context.displaySmall.copyWith(
|
||||
color: Colors.black,
|
||||
fontWeight: FontsManager.bold,
|
||||
),
|
||||
|
||||
@ -12,6 +12,7 @@ import 'package:syncrow_app/utils/resource_manager/constants.dart';
|
||||
import 'package:syncrow_app/utils/resource_manager/font_manager.dart';
|
||||
import 'package:syncrow_app/utils/resource_manager/styles_manager.dart';
|
||||
|
||||
|
||||
class CreateNewPasswordPage extends StatelessWidget {
|
||||
const CreateNewPasswordPage({super.key,});
|
||||
|
||||
|
||||
@ -374,15 +374,20 @@ class _OtpViewState extends State<OtpView> {
|
||||
return;
|
||||
}
|
||||
if ((state is! AuthLoading)) {
|
||||
bool success = await AuthCubit.get(context)
|
||||
.reSendOtp();
|
||||
bool success =
|
||||
await AuthCubit.get(context)
|
||||
.reSendOtp(
|
||||
forget:
|
||||
widget.isForgetPage);
|
||||
FocusScope.of(context).unfocus();
|
||||
if(success){
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (_) => SuccessDialog(
|
||||
key: ValueKey('SuccessDialog'),
|
||||
message: 'New OTP sent!',));
|
||||
if (success) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (_) => SuccessDialog(
|
||||
key: ValueKey(
|
||||
'SuccessDialog'),
|
||||
message: 'New OTP sent!',
|
||||
));
|
||||
}
|
||||
Future.delayed(Duration(seconds: 2),
|
||||
() {
|
||||
|
||||
@ -10,12 +10,17 @@ class ForgetPassword extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
bool isforget = true;
|
||||
return Row(
|
||||
children: [
|
||||
const Spacer(),
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
Navigator.push(context, MaterialPageRoute(builder: (context) => const checkEmailPage(),));
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => checkEmailPage(forget: isforget),
|
||||
));
|
||||
},
|
||||
child: BodyMedium(
|
||||
text: "Forgot Password?",
|
||||
|
||||
Reference in New Issue
Block a user