Line data Source code
1 : part of 'login_bloc.dart';
2 :
3 : @freezed
4 : abstract class LoginState with _$LoginState {
5 : const factory LoginState({
6 : @required bool isEmailValid,
7 : @required bool isPasswordValid,
8 : @required bool isSubmitting,
9 : @required bool isSuccess,
10 : @required bool isFailure,
11 : String error,
12 : }) = _LoginState;
13 :
14 0 : factory LoginState.empty() {
15 : return const LoginState(
16 : isEmailValid: true,
17 : isPasswordValid: true,
18 : isSubmitting: false,
19 : isSuccess: false,
20 : isFailure: false,
21 : );
22 : }
23 :
24 0 : factory LoginState.loading() {
25 : return const LoginState(
26 : isEmailValid: true,
27 : isPasswordValid: true,
28 : isSubmitting: true,
29 : isSuccess: false,
30 : isFailure: false,
31 : );
32 : }
33 :
34 0 : factory LoginState.failure(String error) {
35 0 : return LoginState(
36 : isEmailValid: true,
37 : isPasswordValid: true,
38 : isSubmitting: false,
39 : isSuccess: false,
40 : isFailure: true,
41 : error: error,
42 : );
43 : }
44 :
45 0 : factory LoginState.success() {
46 : return const LoginState(
47 : isEmailValid: true,
48 : isPasswordValid: true,
49 : isSubmitting: false,
50 : isSuccess: true,
51 : isFailure: false,
52 : );
53 : }
54 : }
55 :
56 : extension LoginStateX on LoginState {
57 0 : bool get isFormValid => isEmailValid && isPasswordValid;
58 :
59 0 : LoginState updateEmail({
60 : bool isEmailValid,
61 : }) {
62 0 : return this.copyWith(
63 : isEmailValid: isEmailValid,
64 : isSubmitting: false,
65 : isSuccess: false,
66 : isFailure: false,
67 : );
68 : }
69 :
70 0 : LoginState updatePassword({bool isPasswordValid}) {
71 0 : return this.copyWith(
72 : isPasswordValid: isPasswordValid,
73 : isSubmitting: false,
74 : isSuccess: false,
75 : isFailure: false,
76 : );
77 : }
78 : }
|