diff --git a/lib/features/auth/bloc/auth_cubit.dart b/lib/features/auth/bloc/auth_cubit.dart index 4e48d55..c6d37e4 100644 --- a/lib/features/auth/bloc/auth_cubit.dart +++ b/lib/features/auth/bloc/auth_cubit.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; @@ -59,18 +58,30 @@ class AuthCubit extends Cubit { /////////////////////////////////////VALIDATORS///////////////////////////////////// String? passwordValidator(String? value) { - if (value != null) { - if (value.isEmpty) { - return 'Please enter your password'; - } - if (value.isNotEmpty) { - if (!RegExp( - r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!"#$%&()*+,-./:;<=>?@[\]^_`{|}~])[A-Za-z\d!"#$%&()*+,-./:;<=>?@[\]^_`{|}~]{8,}$') - .hasMatch(value)) { - return 'Password must contain at least:\n - one uppercase letter.\n - one lowercase letter.\n - one number. \n - special character'; - } - } + if (value == null || value.isEmpty) { + return "Please enter your password"; } + + if (value.length < 8) { + return 'Password must be at least 8 characters long'; + } + + if (!RegExp(r'[a-z]').hasMatch(value)) { + return 'Password must contain at least one lowercase letter'; + } + + if (!RegExp(r'[A-Z]').hasMatch(value)) { + return 'Password must contain at least one uppercase letter'; + } + + if (!RegExp(r'\d').hasMatch(value)) { + return 'Password must contain at least one number'; + } + + if (!RegExp(r'[!"#$%&()*+,-./:;<=>?@[\]^_`{|}~]').hasMatch(value)) { + return 'Password must contain at least one special character'; + } + return null; } @@ -182,13 +193,10 @@ class AuthCubit extends Cubit { debugPrint('token: ${token.accessToken}'); FlutterSecureStorage storage = const FlutterSecureStorage(); await storage.write( - key: Token.loginAccessTokenKey, - value: token.accessToken - ); + key: Token.loginAccessTokenKey, value: token.accessToken); const FlutterSecureStorage().write( key: UserModel.userUuidKey, - value: Token.decodeToken(token.accessToken)['uuid'].toString() - ); + value: Token.decodeToken(token.accessToken)['uuid'].toString()); user = UserModel.fromToken(token); emailController.clear(); passwordController.clear(); @@ -225,7 +233,8 @@ class AuthCubit extends Cubit { sendOtp() async { try { emit(AuthLoading()); - await AuthenticationAPI.sendOtp(body: {'email': email, 'type': 'VERIFICATION'}); + await AuthenticationAPI.sendOtp( + body: {'email': email, 'type': 'VERIFICATION'}); emit(AuthSignUpSuccess()); } catch (_) { emit(AuthLoginError(message: 'Something went wrong')); @@ -235,7 +244,8 @@ class AuthCubit extends Cubit { Future reSendOtp() async { try { emit(AuthLoading()); - await AuthenticationAPI.sendOtp(body: {'email': email, 'type': 'VERIFICATION'}); + await AuthenticationAPI.sendOtp( + body: {'email': email, 'type': 'VERIFICATION'}); emit(ResendOtpSuccess()); return true; } catch (_) { @@ -284,13 +294,16 @@ class AuthCubit extends Cubit { try { emit(AuthTokenLoading()); const storage = FlutterSecureStorage(); - final firstLaunch = await SharedPreferencesHelper.readBoolFromSP(StringsManager.firstLaunch) ?? true; + final firstLaunch = await SharedPreferencesHelper.readBoolFromSP( + StringsManager.firstLaunch) ?? + true; if (firstLaunch) { storage.deleteAll(); } - await SharedPreferencesHelper.saveBoolToSP(StringsManager.firstLaunch, false); + await SharedPreferencesHelper.saveBoolToSP( + StringsManager.firstLaunch, false); final value = await storage.read(key: Token.loginAccessTokenKey) ?? ''; if (value.isEmpty) { @@ -317,7 +330,6 @@ class AuthCubit extends Cubit { } } - sendToForgetPassword({required String password}) async { try { emit(AuthForgetPassLoading()); @@ -327,8 +339,4 @@ class AuthCubit extends Cubit { emit(AuthForgetPassError(message: 'Something went wrong')); } } - - - - }