Compare commits
	
		
			5 Commits
		
	
	
		
			a4c73421d2
			...
			bc57974896
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| bc57974896 | |||
| 251e9b28f0 | |||
| 52d60db85e | |||
| 68426786ec | |||
| cccea8de8c | 
| @ -25,7 +25,7 @@ class AlbumMockDataSourceImpl extends AlbumRemoteDataSource { | |||||||
|       id: 1, |       id: 1, | ||||||
|       userId: 1, |       userId: 1, | ||||||
|       title: 'Album 1', |       title: 'Album 1', | ||||||
|     ) |     ), | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|  | |||||||
| @ -58,8 +58,8 @@ class PhotosGridThumbnail | |||||||
|                 bottom: 10, |                 bottom: 10, | ||||||
|                 right: 10, |                 right: 10, | ||||||
|                 child: Icon(Icons.favorite), |                 child: Icon(Icons.favorite), | ||||||
|               ) |               ), | ||||||
|             ] |             ], | ||||||
|           ], |           ], | ||||||
|         ), |         ), | ||||||
|       ); |       ); | ||||||
|  | |||||||
| @ -71,7 +71,8 @@ class App extends StatelessWidget { | |||||||
|         if (authState.status != previous?.status) { |         if (authState.status != previous?.status) { | ||||||
|           previous = authState; |           previous = authState; | ||||||
|           // Checking if current path is onboarding or not |           // Checking if current path is onboarding or not | ||||||
|           final isOnboarding = AppRouter.publicRoutes.contains(state.subloc); |           final isOnboarding = | ||||||
|  |               AppRouter.publicRoutes.contains(state.matchedLocation); | ||||||
|           if (authState.status == AuthenticationStatus.unauthenticated) { |           if (authState.status == AuthenticationStatus.unauthenticated) { | ||||||
|             debugPrint('Not logged'); |             debugPrint('Not logged'); | ||||||
|             if (!isOnboarding) { |             if (!isOnboarding) { | ||||||
|  | |||||||
| @ -30,11 +30,11 @@ dependencies: | |||||||
|   flutter: |   flutter: | ||||||
|     sdk: flutter |     sdk: flutter | ||||||
| 
 | 
 | ||||||
|   go_router: ^5.1.5 |   go_router: ^10.1.0 | ||||||
|   firebase_core: ^2.1.1 |   firebase_core: ^2.1.1 | ||||||
|   flutter_bloc: ^8.1.1 |   flutter_bloc: ^8.1.1 | ||||||
|   firebase_auth: ^4.2.0 |   firebase_auth: ^4.2.0 | ||||||
|   google_sign_in: ^5.4.2 |   google_sign_in: ^6.1.4 | ||||||
|   get_it: ^7.2.0 |   get_it: ^7.2.0 | ||||||
|    |    | ||||||
|   wyatt_authentication_bloc: |   wyatt_authentication_bloc: | ||||||
|  | |||||||
| @ -33,7 +33,7 @@ abstract class Forms { | |||||||
|           FormInput( |           FormInput( | ||||||
|             AuthFormField.password, |             AuthFormField.password, | ||||||
|             customPasswordValidator ?? const Password.pure(), |             customPasswordValidator ?? const Password.pure(), | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|         name: AuthFormName.signInForm, |         name: AuthFormName.signInForm, | ||||||
|       ); |       ); | ||||||
| @ -55,7 +55,7 @@ abstract class Forms { | |||||||
|             AuthFormField.password, |             AuthFormField.password, | ||||||
|             customPasswordValidator ?? const Password.pure(), |             customPasswordValidator ?? const Password.pure(), | ||||||
|           ), |           ), | ||||||
|           ...extraSignUpInputs ?? [] |           ...extraSignUpInputs ?? [], | ||||||
|         ], |         ], | ||||||
|         name: AuthFormName.signUpForm, |         name: AuthFormName.signUpForm, | ||||||
|       ); |       ); | ||||||
| @ -93,7 +93,7 @@ abstract class Forms { | |||||||
|             customPasswordValidator ?? const Password.pure(), |             customPasswordValidator ?? const Password.pure(), | ||||||
|             metadata: const FormInputMetadata(isRequired: false), |             metadata: const FormInputMetadata(isRequired: false), | ||||||
|           ), |           ), | ||||||
|           ...extraEditAccountInputs ?? [] |           ...extraEditAccountInputs ?? [], | ||||||
|         ], |         ], | ||||||
|         validationStrategy: const OnlyRequiredInputValidator(), |         validationStrategy: const OnlyRequiredInputValidator(), | ||||||
|         name: AuthFormName.editAccountForm, |         name: AuthFormName.editAccountForm, | ||||||
|  | |||||||
| @ -33,7 +33,7 @@ class AuthenticationMockCacheDataSourceImpl<Data> | |||||||
|   Future<Account?> getCachedAccount() async { |   Future<Account?> getCachedAccount() async { | ||||||
|     await Future<void>.delayed(const Duration(milliseconds: 200)); |     await Future<void>.delayed(const Duration(milliseconds: 200)); | ||||||
| 
 | 
 | ||||||
| return null; |     return null; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|  | |||||||
| @ -15,7 +15,7 @@ dependencies: | |||||||
|   flutter_bloc: ^8.1.1 |   flutter_bloc: ^8.1.1 | ||||||
|   equatable: ^2.0.5 |   equatable: ^2.0.5 | ||||||
|   firebase_auth: ^4.2.0 |   firebase_auth: ^4.2.0 | ||||||
|   google_sign_in: ^5.4.2 |   google_sign_in: ^6.1.4 | ||||||
|   rxdart: ^0.27.7 |   rxdart: ^0.27.7 | ||||||
| 
 | 
 | ||||||
|   wyatt_form_bloc: |   wyatt_form_bloc: | ||||||
| @ -30,12 +30,12 @@ dependencies: | |||||||
|     hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub/ |     hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub/ | ||||||
|     version: ^0.0.5 |     version: ^0.0.5 | ||||||
|   flutter_secure_storage: ^8.0.0 |   flutter_secure_storage: ^8.0.0 | ||||||
|   http: ^0.13.5 |   http: ^1.1.0 | ||||||
| 
 | 
 | ||||||
| dev_dependencies: | dev_dependencies: | ||||||
|   flutter_test: { sdk: flutter } |   flutter_test: { sdk: flutter } | ||||||
|   bloc_test: ^9.1.0 |   bloc_test: ^9.1.0 | ||||||
|   mocktail: ^0.3.0 |   mocktail: ^1.0.0 | ||||||
| 
 | 
 | ||||||
|   wyatt_analysis: |   wyatt_analysis: | ||||||
|     hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub/ |     hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub/ | ||||||
|  | |||||||
| @ -46,7 +46,7 @@ void main() { | |||||||
|           AuthenticationSession.fromEvent( |           AuthenticationSession.fromEvent( | ||||||
|             SignedInFromCacheEvent(account: account), |             SignedInFromCacheEvent(account: account), | ||||||
|             data: 10, |             data: 10, | ||||||
|           ) |           ), | ||||||
|         ]), |         ]), | ||||||
|       ); |       ); | ||||||
| 
 | 
 | ||||||
| @ -113,7 +113,7 @@ void main() { | |||||||
|           ), |           ), | ||||||
|           const EmailVerificationState( |           const EmailVerificationState( | ||||||
|             status: FormStatus.submissionSuccess, |             status: FormStatus.submissionSuccess, | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|       ); |       ); | ||||||
| 
 | 
 | ||||||
| @ -135,7 +135,7 @@ void main() { | |||||||
|           const EmailVerificationState( |           const EmailVerificationState( | ||||||
|             errorMessage: 'erreur', |             errorMessage: 'erreur', | ||||||
|             status: FormStatus.submissionFailure, |             status: FormStatus.submissionFailure, | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|       ); |       ); | ||||||
|     }); |     }); | ||||||
| @ -192,7 +192,7 @@ void main() { | |||||||
|           const EmailVerificationState( |           const EmailVerificationState( | ||||||
|             isVerified: true, |             isVerified: true, | ||||||
|             status: FormStatus.submissionSuccess, |             status: FormStatus.submissionSuccess, | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|       ); |       ); | ||||||
| 
 | 
 | ||||||
| @ -214,7 +214,7 @@ void main() { | |||||||
|           ), |           ), | ||||||
|           const EmailVerificationState( |           const EmailVerificationState( | ||||||
|             status: FormStatus.submissionSuccess, |             status: FormStatus.submissionSuccess, | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|       ); |       ); | ||||||
| 
 | 
 | ||||||
| @ -236,7 +236,7 @@ void main() { | |||||||
|           const EmailVerificationState( |           const EmailVerificationState( | ||||||
|             errorMessage: 'erreur', |             errorMessage: 'erreur', | ||||||
|             status: FormStatus.submissionFailure, |             status: FormStatus.submissionFailure, | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|       ); |       ); | ||||||
|     }); |     }); | ||||||
|  | |||||||
| @ -41,7 +41,7 @@ void main() { | |||||||
|     final WyattForm form = WyattFormImpl( |     final WyattForm form = WyattFormImpl( | ||||||
|       [ |       [ | ||||||
|         FormInput(AuthFormField.email, const Email.pure()), |         FormInput(AuthFormField.email, const Email.pure()), | ||||||
|         FormInput(AuthFormField.password, const Password.pure()) |         FormInput(AuthFormField.password, const Password.pure()), | ||||||
|       ], |       ], | ||||||
|       name: AuthFormName.passwordResetForm, |       name: AuthFormName.passwordResetForm, | ||||||
|     ); |     ); | ||||||
| @ -260,7 +260,7 @@ void main() { | |||||||
|               name: AuthFormName.passwordResetForm, |               name: AuthFormName.passwordResetForm, | ||||||
|             ), |             ), | ||||||
|             status: FormStatus.submissionSuccess, |             status: FormStatus.submissionSuccess, | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|       ); |       ); | ||||||
| 
 | 
 | ||||||
| @ -327,7 +327,7 @@ void main() { | |||||||
|               name: AuthFormName.passwordResetForm, |               name: AuthFormName.passwordResetForm, | ||||||
|             ), |             ), | ||||||
|             status: FormStatus.submissionFailure, |             status: FormStatus.submissionFailure, | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|       ); |       ); | ||||||
|     }); |     }); | ||||||
|  | |||||||
| @ -46,7 +46,7 @@ void main() { | |||||||
|     final WyattForm form = WyattFormImpl( |     final WyattForm form = WyattFormImpl( | ||||||
|       [ |       [ | ||||||
|         FormInput(AuthFormField.email, const Email.pure()), |         FormInput(AuthFormField.email, const Email.pure()), | ||||||
|         FormInput(AuthFormField.password, const Password.pure()) |         FormInput(AuthFormField.password, const Password.pure()), | ||||||
|       ], |       ], | ||||||
|       name: AuthFormName.signInForm, |       name: AuthFormName.signInForm, | ||||||
|     ); |     ); | ||||||
| @ -102,7 +102,7 @@ void main() { | |||||||
|                   AuthFormField.email, |                   AuthFormField.email, | ||||||
|                   const Email.dirty(invalidEmailString), |                   const Email.dirty(invalidEmailString), | ||||||
|                 ), |                 ), | ||||||
|                 FormInput(AuthFormField.password, const Password.pure()) |                 FormInput(AuthFormField.password, const Password.pure()), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
| @ -126,7 +126,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
| @ -145,7 +145,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.dirty(validPasswordString), |                 const Password.dirty(validPasswordString), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signInForm, |             name: AuthFormName.signInForm, | ||||||
|           ), |           ), | ||||||
| @ -163,7 +163,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
| @ -191,7 +191,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(invalidPasswordString), |                   const Password.dirty(invalidPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
| @ -215,7 +215,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.pure(), |                   const Password.pure(), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
| @ -234,7 +234,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.pure(), |                 const Password.pure(), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signInForm, |             name: AuthFormName.signInForm, | ||||||
|           ), |           ), | ||||||
| @ -252,7 +252,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
| @ -287,7 +287,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.dirty(validPasswordString), |                 const Password.dirty(validPasswordString), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signInForm, |             name: AuthFormName.signInForm, | ||||||
|           ), |           ), | ||||||
| @ -312,7 +312,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
| @ -331,7 +331,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.dirty(validPasswordString), |                 const Password.dirty(validPasswordString), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signInForm, |             name: AuthFormName.signInForm, | ||||||
|           ), |           ), | ||||||
| @ -364,7 +364,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
| @ -383,7 +383,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.dirty(validPasswordString), |                 const Password.dirty(validPasswordString), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signInForm, |             name: AuthFormName.signInForm, | ||||||
|           ), |           ), | ||||||
| @ -401,7 +401,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
| @ -417,12 +417,12 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
|             status: FormStatus.submissionSuccess, |             status: FormStatus.submissionSuccess, | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|       ); |       ); | ||||||
| 
 | 
 | ||||||
| @ -448,7 +448,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
| @ -467,7 +467,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.dirty(validPasswordString), |                 const Password.dirty(validPasswordString), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signInForm, |             name: AuthFormName.signInForm, | ||||||
|           ), |           ), | ||||||
| @ -485,7 +485,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
| @ -501,12 +501,12 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
|             status: FormStatus.submissionFailure, |             status: FormStatus.submissionFailure, | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|       ); |       ); | ||||||
|     }); |     }); | ||||||
| @ -527,7 +527,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.dirty(validPasswordString), |                 const Password.dirty(validPasswordString), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signInForm, |             name: AuthFormName.signInForm, | ||||||
|           ), |           ), | ||||||
| @ -566,7 +566,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.dirty(validPasswordString), |                 const Password.dirty(validPasswordString), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signInForm, |             name: AuthFormName.signInForm, | ||||||
|           ), |           ), | ||||||
| @ -584,7 +584,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.pure(), |                   const Password.pure(), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
| @ -600,12 +600,12 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.pure(), |                   const Password.pure(), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
|             status: FormStatus.submissionSuccess, |             status: FormStatus.submissionSuccess, | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|       ); |       ); | ||||||
| 
 | 
 | ||||||
| @ -630,7 +630,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.dirty(validPasswordString), |                 const Password.dirty(validPasswordString), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signInForm, |             name: AuthFormName.signInForm, | ||||||
|           ), |           ), | ||||||
| @ -648,7 +648,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.pure(), |                   const Password.pure(), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
| @ -664,12 +664,12 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.pure(), |                   const Password.pure(), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signInForm, |               name: AuthFormName.signInForm, | ||||||
|             ), |             ), | ||||||
|             status: FormStatus.submissionFailure, |             status: FormStatus.submissionFailure, | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|       ); |       ); | ||||||
|     }); |     }); | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ void main() { | |||||||
|   final WyattForm form = WyattFormImpl( |   final WyattForm form = WyattFormImpl( | ||||||
|     [ |     [ | ||||||
|       FormInput(AuthFormField.email, const Email.pure()), |       FormInput(AuthFormField.email, const Email.pure()), | ||||||
|       FormInput(AuthFormField.password, const Password.pure()) |       FormInput(AuthFormField.password, const Password.pure()), | ||||||
|     ], |     ], | ||||||
|     name: AuthFormName.signInForm, |     name: AuthFormName.signInForm, | ||||||
|   ); |   ); | ||||||
|  | |||||||
| @ -46,7 +46,7 @@ void main() { | |||||||
|     final WyattForm form = WyattFormImpl( |     final WyattForm form = WyattFormImpl( | ||||||
|       [ |       [ | ||||||
|         FormInput(AuthFormField.email, const Email.pure()), |         FormInput(AuthFormField.email, const Email.pure()), | ||||||
|         FormInput(AuthFormField.password, const Password.pure()) |         FormInput(AuthFormField.password, const Password.pure()), | ||||||
|       ], |       ], | ||||||
|       name: AuthFormName.signUpForm, |       name: AuthFormName.signUpForm, | ||||||
|     ); |     ); | ||||||
| @ -98,7 +98,7 @@ void main() { | |||||||
|                   AuthFormField.email, |                   AuthFormField.email, | ||||||
|                   const Email.dirty(invalidEmailString), |                   const Email.dirty(invalidEmailString), | ||||||
|                 ), |                 ), | ||||||
|                 FormInput(AuthFormField.password, const Password.pure()) |                 FormInput(AuthFormField.password, const Password.pure()), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signUpForm, |               name: AuthFormName.signUpForm, | ||||||
|             ), |             ), | ||||||
| @ -122,7 +122,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signUpForm, |               name: AuthFormName.signUpForm, | ||||||
|             ), |             ), | ||||||
| @ -141,7 +141,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.dirty(validPasswordString), |                 const Password.dirty(validPasswordString), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signUpForm, |             name: AuthFormName.signUpForm, | ||||||
|           ), |           ), | ||||||
| @ -159,7 +159,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signUpForm, |               name: AuthFormName.signUpForm, | ||||||
|             ), |             ), | ||||||
| @ -187,7 +187,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(invalidPasswordString), |                   const Password.dirty(invalidPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signUpForm, |               name: AuthFormName.signUpForm, | ||||||
|             ), |             ), | ||||||
| @ -211,7 +211,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.pure(), |                   const Password.pure(), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signUpForm, |               name: AuthFormName.signUpForm, | ||||||
|             ), |             ), | ||||||
| @ -230,7 +230,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.pure(), |                 const Password.pure(), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signUpForm, |             name: AuthFormName.signUpForm, | ||||||
|           ), |           ), | ||||||
| @ -248,7 +248,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signUpForm, |               name: AuthFormName.signUpForm, | ||||||
|             ), |             ), | ||||||
| @ -283,7 +283,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signUpForm, |               name: AuthFormName.signUpForm, | ||||||
|             ), |             ), | ||||||
| @ -302,7 +302,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.dirty(validPasswordString), |                 const Password.dirty(validPasswordString), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signUpForm, |             name: AuthFormName.signUpForm, | ||||||
|           ), |           ), | ||||||
| @ -335,7 +335,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signUpForm, |               name: AuthFormName.signUpForm, | ||||||
|             ), |             ), | ||||||
| @ -354,7 +354,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.dirty(validPasswordString), |                 const Password.dirty(validPasswordString), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signUpForm, |             name: AuthFormName.signUpForm, | ||||||
|           ), |           ), | ||||||
| @ -372,7 +372,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signUpForm, |               name: AuthFormName.signUpForm, | ||||||
|             ), |             ), | ||||||
| @ -388,12 +388,12 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signUpForm, |               name: AuthFormName.signUpForm, | ||||||
|             ), |             ), | ||||||
|             status: FormStatus.submissionSuccess, |             status: FormStatus.submissionSuccess, | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|       ); |       ); | ||||||
| 
 | 
 | ||||||
| @ -419,7 +419,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signUpForm, |               name: AuthFormName.signUpForm, | ||||||
|             ), |             ), | ||||||
| @ -438,7 +438,7 @@ void main() { | |||||||
|               FormInput( |               FormInput( | ||||||
|                 AuthFormField.password, |                 AuthFormField.password, | ||||||
|                 const Password.dirty(validPasswordString), |                 const Password.dirty(validPasswordString), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             name: AuthFormName.signUpForm, |             name: AuthFormName.signUpForm, | ||||||
|           ), |           ), | ||||||
| @ -456,7 +456,7 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signUpForm, |               name: AuthFormName.signUpForm, | ||||||
|             ), |             ), | ||||||
| @ -472,12 +472,12 @@ void main() { | |||||||
|                 FormInput( |                 FormInput( | ||||||
|                   AuthFormField.password, |                   AuthFormField.password, | ||||||
|                   const Password.dirty(validPasswordString), |                   const Password.dirty(validPasswordString), | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               name: AuthFormName.signUpForm, |               name: AuthFormName.signUpForm, | ||||||
|             ), |             ), | ||||||
|             status: FormStatus.submissionFailure, |             status: FormStatus.submissionFailure, | ||||||
|           ) |           ), | ||||||
|         ], |         ], | ||||||
|       ); |       ); | ||||||
|     }); |     }); | ||||||
| @ -487,7 +487,7 @@ void main() { | |||||||
|           FormInput<dynamic, FormInputValidator<dynamic, ValidationError>, |           FormInput<dynamic, FormInputValidator<dynamic, ValidationError>, | ||||||
|               dynamic>>[ |               dynamic>>[ | ||||||
|         FormInput(AuthFormField.email, const Email.pure()), |         FormInput(AuthFormField.email, const Email.pure()), | ||||||
|         FormInput(AuthFormField.password, const Password.pure()) |         FormInput(AuthFormField.password, const Password.pure()), | ||||||
|       ]; |       ]; | ||||||
| 
 | 
 | ||||||
|       final inputsB = < |       final inputsB = < | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ void main() { | |||||||
|   final WyattForm form = WyattFormImpl( |   final WyattForm form = WyattFormImpl( | ||||||
|     [ |     [ | ||||||
|       FormInput(AuthFormField.email, const Email.pure()), |       FormInput(AuthFormField.email, const Email.pure()), | ||||||
|       FormInput(AuthFormField.password, const Password.pure()) |       FormInput(AuthFormField.password, const Password.pure()), | ||||||
|     ], |     ], | ||||||
|     name: AuthFormName.signInForm, |     name: AuthFormName.signInForm, | ||||||
|   ); |   ); | ||||||
|  | |||||||
| @ -31,7 +31,7 @@ class ExampleCubit extends Cubit<CrudState> { | |||||||
|           'DATA LOADED 1', |           'DATA LOADED 1', | ||||||
|           'DATA LOADED 2', |           'DATA LOADED 2', | ||||||
|           'DATA LOADED 3', |           'DATA LOADED 3', | ||||||
|           'DATA LOADED 4' |           'DATA LOADED 4', | ||||||
|         ]), |         ]), | ||||||
|       ); |       ); | ||||||
|       await Future<void>.delayed(const Duration(seconds: 1)); |       await Future<void>.delayed(const Duration(seconds: 1)); | ||||||
|  | |||||||
| @ -53,7 +53,8 @@ class DefaultFirebaseOptions { | |||||||
|     messagingSenderId: '100151285458', |     messagingSenderId: '100151285458', | ||||||
|     projectId: 'wyatt-notification-example', |     projectId: 'wyatt-notification-example', | ||||||
|     storageBucket: 'wyatt-notification-example.appspot.com', |     storageBucket: 'wyatt-notification-example.appspot.com', | ||||||
|     iosClientId: '100151285458-a9notq1k1padf0vk9ove8ll3amjgi7mn.apps.googleusercontent.com', |     iosClientId: | ||||||
|  |         '100151285458-a9notq1k1padf0vk9ove8ll3amjgi7mn.apps.googleusercontent.com', | ||||||
|     iosBundleId: 'com.example.notificationBlocExample', |     iosBundleId: 'com.example.notificationBlocExample', | ||||||
|   ); |   ); | ||||||
| } | } | ||||||
|  | |||||||
| @ -22,11 +22,10 @@ import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_me | |||||||
| import 'package:wyatt_type_utils/wyatt_type_utils.dart'; | import 'package:wyatt_type_utils/wyatt_type_utils.dart'; | ||||||
| 
 | 
 | ||||||
| class CloudMessagingRepositoryImpl extends CloudMessagingRepository { | class CloudMessagingRepositoryImpl extends CloudMessagingRepository { | ||||||
|   final CloudMessagingRemoteDataSource _notificationRemoteDataSource; |  | ||||||
| 
 |  | ||||||
|   CloudMessagingRepositoryImpl({ |   CloudMessagingRepositoryImpl({ | ||||||
|     required CloudMessagingRemoteDataSource notificationRemoteDataSource, |     required CloudMessagingRemoteDataSource notificationRemoteDataSource, | ||||||
|   }) : _notificationRemoteDataSource = notificationRemoteDataSource; |   }) : _notificationRemoteDataSource = notificationRemoteDataSource; | ||||||
|  |   final CloudMessagingRemoteDataSource _notificationRemoteDataSource; | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   FutureOrResult<String?> getToken() => Result.tryCatchAsync( |   FutureOrResult<String?> getToken() => Result.tryCatchAsync( | ||||||
|  | |||||||
| @ -18,11 +18,10 @@ import 'package:wyatt_architecture/wyatt_architecture.dart'; | |||||||
| import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart'; | import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart'; | ||||||
| 
 | 
 | ||||||
| class GetCloudMessagingTokenUseCase extends AsyncUseCase<void, String?> { | class GetCloudMessagingTokenUseCase extends AsyncUseCase<void, String?> { | ||||||
|   final CloudMessagingRepository _notificationRepository; |  | ||||||
| 
 |  | ||||||
|   GetCloudMessagingTokenUseCase({ |   GetCloudMessagingTokenUseCase({ | ||||||
|     required CloudMessagingRepository notificationRepository, |     required CloudMessagingRepository notificationRepository, | ||||||
|   }) : _notificationRepository = notificationRepository; |   }) : _notificationRepository = notificationRepository; | ||||||
|  |   final CloudMessagingRepository _notificationRepository; | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   FutureOrResult<String?> execute(void params) => |   FutureOrResult<String?> execute(void params) => | ||||||
|  | |||||||
| @ -18,11 +18,10 @@ import 'package:wyatt_architecture/wyatt_architecture.dart'; | |||||||
| import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart'; | import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart'; | ||||||
| 
 | 
 | ||||||
| class InitCloudmessagingUseCase extends AsyncUseCase<NoParam, void> { | class InitCloudmessagingUseCase extends AsyncUseCase<NoParam, void> { | ||||||
|   final CloudMessagingRepository _notificationRepository; |  | ||||||
| 
 |  | ||||||
|   InitCloudmessagingUseCase({ |   InitCloudmessagingUseCase({ | ||||||
|     required CloudMessagingRepository notificationRepository, |     required CloudMessagingRepository notificationRepository, | ||||||
|   }) : _notificationRepository = notificationRepository; |   }) : _notificationRepository = notificationRepository; | ||||||
|  |   final CloudMessagingRepository _notificationRepository; | ||||||
|   @override |   @override | ||||||
|   FutureOrResult<void> execute(NoParam? params) => |   FutureOrResult<void> execute(NoParam? params) => | ||||||
|       _notificationRepository.init(); |       _notificationRepository.init(); | ||||||
|  | |||||||
| @ -25,11 +25,10 @@ import 'package:wyatt_type_utils/wyatt_type_utils.dart'; | |||||||
| 
 | 
 | ||||||
| class ListenNotificationUseCase | class ListenNotificationUseCase | ||||||
|     extends StreamUseCase<NoParam, RemoteNotification> { |     extends StreamUseCase<NoParam, RemoteNotification> { | ||||||
|   final CloudMessagingRepository _notificationRepository; |  | ||||||
| 
 |  | ||||||
|   ListenNotificationUseCase({ |   ListenNotificationUseCase({ | ||||||
|     required CloudMessagingRepository notificationRepository, |     required CloudMessagingRepository notificationRepository, | ||||||
|   }) : _notificationRepository = notificationRepository; |   }) : _notificationRepository = notificationRepository; | ||||||
|  |   final CloudMessagingRepository _notificationRepository; | ||||||
|   @override |   @override | ||||||
|   FutureOrResult<Stream<RemoteNotification>> execute(NoParam? params) async { |   FutureOrResult<Stream<RemoteNotification>> execute(NoParam? params) async { | ||||||
|     Stream<RemoteNotification>? notificationStream; |     Stream<RemoteNotification>? notificationStream; | ||||||
|  | |||||||
| @ -18,11 +18,10 @@ import 'package:wyatt_architecture/wyatt_architecture.dart'; | |||||||
| import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart'; | import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart'; | ||||||
| 
 | 
 | ||||||
| class RequestCloudMessagingPermissionUseCase extends AsyncUseCase<void, void> { | class RequestCloudMessagingPermissionUseCase extends AsyncUseCase<void, void> { | ||||||
|   final CloudMessagingRepository _notificationRepository; |  | ||||||
| 
 |  | ||||||
|   RequestCloudMessagingPermissionUseCase({ |   RequestCloudMessagingPermissionUseCase({ | ||||||
|     required CloudMessagingRepository notificationRepository, |     required CloudMessagingRepository notificationRepository, | ||||||
|   }) : _notificationRepository = notificationRepository; |   }) : _notificationRepository = notificationRepository; | ||||||
|  |   final CloudMessagingRepository _notificationRepository; | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   FutureOrResult<void> execute(void params) => |   FutureOrResult<void> execute(void params) => | ||||||
|  | |||||||
| @ -20,11 +20,10 @@ import 'package:wyatt_architecture/wyatt_architecture.dart'; | |||||||
| import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart'; | import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_messaging_repository.dart'; | ||||||
| 
 | 
 | ||||||
| class SubscribeToNotificationTopicUseCase extends AsyncUseCase<String, void> { | class SubscribeToNotificationTopicUseCase extends AsyncUseCase<String, void> { | ||||||
|   final CloudMessagingRepository _notificationRepository; |  | ||||||
| 
 |  | ||||||
|   SubscribeToNotificationTopicUseCase({ |   SubscribeToNotificationTopicUseCase({ | ||||||
|     required CloudMessagingRepository notificationRepository, |     required CloudMessagingRepository notificationRepository, | ||||||
|   }) : _notificationRepository = notificationRepository; |   }) : _notificationRepository = notificationRepository; | ||||||
|  |   final CloudMessagingRepository _notificationRepository; | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   FutureOr<void> onStart(String? params) { |   FutureOr<void> onStart(String? params) { | ||||||
|  | |||||||
| @ -21,11 +21,10 @@ import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_me | |||||||
| 
 | 
 | ||||||
| class UnsubscribeFromNotificationTopicUseCase | class UnsubscribeFromNotificationTopicUseCase | ||||||
|     extends AsyncUseCase<String, void> { |     extends AsyncUseCase<String, void> { | ||||||
|   final CloudMessagingRepository _notificationRepository; |  | ||||||
| 
 |  | ||||||
|   UnsubscribeFromNotificationTopicUseCase({ |   UnsubscribeFromNotificationTopicUseCase({ | ||||||
|     required CloudMessagingRepository notificationRepository, |     required CloudMessagingRepository notificationRepository, | ||||||
|   }) : _notificationRepository = notificationRepository; |   }) : _notificationRepository = notificationRepository; | ||||||
|  |   final CloudMessagingRepository _notificationRepository; | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   FutureOr<void> onStart(String? params) { |   FutureOr<void> onStart(String? params) { | ||||||
|  | |||||||
| @ -30,11 +30,6 @@ part 'cloud_messaging_state.dart'; | |||||||
| typedef OnNotification = void Function(RemoteNotification); | typedef OnNotification = void Function(RemoteNotification); | ||||||
| 
 | 
 | ||||||
| class CloudMessagingCubit extends Cubit<CloudmessagingState> { | class CloudMessagingCubit extends Cubit<CloudmessagingState> { | ||||||
|   final ListenNotificationUseCase _listenNotification; |  | ||||||
|   final SubscribeToNotificationTopicUseCase? _subscribe; |  | ||||||
|   final UnsubscribeFromNotificationTopicUseCase? _unsubscribe; |  | ||||||
| 
 |  | ||||||
|   final OnNotification? handleNotification; |  | ||||||
|   CloudMessagingCubit({ |   CloudMessagingCubit({ | ||||||
|     required ListenNotificationUseCase listenNotification, |     required ListenNotificationUseCase listenNotification, | ||||||
|     SubscribeToNotificationTopicUseCase? subscribe, |     SubscribeToNotificationTopicUseCase? subscribe, | ||||||
| @ -44,6 +39,11 @@ class CloudMessagingCubit extends Cubit<CloudmessagingState> { | |||||||
|         _subscribe = subscribe, |         _subscribe = subscribe, | ||||||
|         _unsubscribe = unsubscribe, |         _unsubscribe = unsubscribe, | ||||||
|         super(const CloudmessagingState()); |         super(const CloudmessagingState()); | ||||||
|  |   final ListenNotificationUseCase _listenNotification; | ||||||
|  |   final SubscribeToNotificationTopicUseCase? _subscribe; | ||||||
|  |   final UnsubscribeFromNotificationTopicUseCase? _unsubscribe; | ||||||
|  | 
 | ||||||
|  |   final OnNotification? handleNotification; | ||||||
| 
 | 
 | ||||||
|   Future<void> listenNotification() async { |   Future<void> listenNotification() async { | ||||||
|     final notificaitons = await _listenNotification.execute(const NoParam()); |     final notificaitons = await _listenNotification.execute(const NoParam()); | ||||||
|  | |||||||
| @ -17,9 +17,8 @@ | |||||||
| part of 'cloud_messaging_cubit.dart'; | part of 'cloud_messaging_cubit.dart'; | ||||||
| 
 | 
 | ||||||
| class CloudmessagingState extends Equatable { | class CloudmessagingState extends Equatable { | ||||||
|   final RemoteNotification? remoteNotification; |  | ||||||
| 
 |  | ||||||
|   const CloudmessagingState([this.remoteNotification]); |   const CloudmessagingState([this.remoteNotification]); | ||||||
|  |   final RemoteNotification? remoteNotification; | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   List<Object?> get props => [remoteNotification]; |   List<Object?> get props => [remoteNotification]; | ||||||
|  | |||||||
| @ -11,7 +11,7 @@ environment: | |||||||
| dependencies: | dependencies: | ||||||
|   build: ^2.3.1 |   build: ^2.3.1 | ||||||
|   source_gen: ^1.2.7 |   source_gen: ^1.2.7 | ||||||
|   analyzer: ^5.4.0 |   analyzer: ^6.2.0 | ||||||
| 
 | 
 | ||||||
|   wyatt_component_copy_with_extension: |   wyatt_component_copy_with_extension: | ||||||
|     hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub |     hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub | ||||||
|  | |||||||
| @ -33,8 +33,7 @@ class CrudFirestoreDataSourceImpl<Model extends ObjectModel, Entity> | |||||||
|     required Model Function( |     required Model Function( | ||||||
|       DocumentSnapshot<Map<String, dynamic>>, |       DocumentSnapshot<Map<String, dynamic>>, | ||||||
|       SnapshotOptions?, |       SnapshotOptions?, | ||||||
|     ) |     ) fromFirestore, | ||||||
|         fromFirestore, |  | ||||||
| 
 | 
 | ||||||
|     /// The function that converts a [Model] to a [Map<String, Object?>]. |     /// The function that converts a [Model] to a [Map<String, Object?>]. | ||||||
|     required Map<String, Object?> Function(Model, SetOptions?) toFirestore, |     required Map<String, Object?> Function(Model, SetOptions?) toFirestore, | ||||||
|  | |||||||
| @ -289,7 +289,7 @@ abstract class CrudAdvancedCubit<Model extends ObjectModel> | |||||||
|                 WhereQueryType.whereIn, |                 WhereQueryType.whereIn, | ||||||
|                 'id', |                 'id', | ||||||
|                 ids, |                 ids, | ||||||
|               ) |               ), | ||||||
|             ]); |             ]); | ||||||
|             if (result.isOk) { |             if (result.isOk) { | ||||||
|               return CrudListLoaded<Model?>(result.ok ?? []); |               return CrudListLoaded<Model?>(result.ok ?? []); | ||||||
|  | |||||||
| @ -353,7 +353,7 @@ abstract class CrudCubit<Model extends ObjectModel> extends CrudBaseCubit { | |||||||
|                 WhereQueryType.whereIn, |                 WhereQueryType.whereIn, | ||||||
|                 'id', |                 'id', | ||||||
|                 ids, |                 ids, | ||||||
|               ) |               ), | ||||||
|             ]); |             ]); | ||||||
|             if (result.isOk) { |             if (result.isOk) { | ||||||
|               return CrudListLoaded<Model?>(result.ok ?? []); |               return CrudListLoaded<Model?>(result.ok ?? []); | ||||||
|  | |||||||
| @ -26,9 +26,8 @@ class FormDifference extends FormOperation { | |||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   WyattForm call(WyattForm a, WyattForm b) { |   WyattForm call(WyattForm a, WyattForm b) { | ||||||
|     final inputs = < |     final inputs = <FormInput<dynamic, | ||||||
|         FormInput<dynamic, FormInputValidator<dynamic, ValidationError>, |         FormInputValidator<dynamic, ValidationError>, dynamic>>[]; | ||||||
|             dynamic>>[]; |  | ||||||
| 
 | 
 | ||||||
|     for (final i in a.inputs) { |     for (final i in a.inputs) { | ||||||
|       if (!b.containsKey(i.key)) { |       if (!b.containsKey(i.key)) { | ||||||
|  | |||||||
| @ -26,9 +26,8 @@ class FormIntersection extends FormOperation { | |||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   WyattForm call(WyattForm a, WyattForm b) { |   WyattForm call(WyattForm a, WyattForm b) { | ||||||
|     final inputs = < |     final inputs = <FormInput<dynamic, | ||||||
|         FormInput<dynamic, FormInputValidator<dynamic, ValidationError>, |         FormInputValidator<dynamic, ValidationError>, dynamic>>[]; | ||||||
|             dynamic>>[]; |  | ||||||
| 
 | 
 | ||||||
|     for (final i in a.inputs) { |     for (final i in a.inputs) { | ||||||
|       if (b.containsKey(i.key)) { |       if (b.containsKey(i.key)) { | ||||||
|  | |||||||
| @ -26,9 +26,8 @@ class FormUnion extends FormOperation { | |||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   WyattForm call(WyattForm a, WyattForm b) { |   WyattForm call(WyattForm a, WyattForm b) { | ||||||
|     final inputs = < |     final inputs = <FormInput<dynamic, | ||||||
|         FormInput<dynamic, FormInputValidator<dynamic, ValidationError>, |         FormInputValidator<dynamic, ValidationError>, dynamic>>[]; | ||||||
|             dynamic>>[]; |  | ||||||
| 
 | 
 | ||||||
|     for (final i in a.inputs) { |     for (final i in a.inputs) { | ||||||
|       inputs.add(i); |       inputs.add(i); | ||||||
|  | |||||||
| @ -46,7 +46,7 @@ abstract class Convert { | |||||||
|     map.forEach( |     map.forEach( | ||||||
|       (key, value) => pairs.add([ |       (key, value) => pairs.add([ | ||||||
|         Uri.encodeQueryComponent(key, encoding: encoding ?? utf8), |         Uri.encodeQueryComponent(key, encoding: encoding ?? utf8), | ||||||
|         Uri.encodeQueryComponent(value, encoding: encoding ?? utf8) |         Uri.encodeQueryComponent(value, encoding: encoding ?? utf8), | ||||||
|       ]), |       ]), | ||||||
|     ); |     ); | ||||||
|     return pairs.map((pair) => '${pair[0]}=${pair[1]}').join('&'); |     return pairs.map((pair) => '${pair[0]}=${pair[1]}').join('&'); | ||||||
|  | |||||||
| @ -10,7 +10,7 @@ environment: | |||||||
| 
 | 
 | ||||||
| dependencies:  | dependencies:  | ||||||
|   crypto: ^3.0.2 |   crypto: ^3.0.2 | ||||||
|   http: ^0.13.4 |   http: ^1.1.0 | ||||||
| 
 | 
 | ||||||
| dev_dependencies: | dev_dependencies: | ||||||
|   wyatt_analysis: |   wyatt_analysis: | ||||||
|  | |||||||
| @ -44,7 +44,7 @@ class App extends StatelessWidget { | |||||||
|             ), |             ), | ||||||
|           ), |           ), | ||||||
|           GlobalMaterialLocalizations.delegate, |           GlobalMaterialLocalizations.delegate, | ||||||
|           GlobalWidgetsLocalizations.delegate |           GlobalWidgetsLocalizations.delegate, | ||||||
|         ], |         ], | ||||||
|         home: Scaffold( |         home: Scaffold( | ||||||
|           appBar: AppBar( |           appBar: AppBar( | ||||||
|  | |||||||
| @ -93,7 +93,7 @@ class I18nFileParser extends Parser<String, String> { | |||||||
| 
 | 
 | ||||||
|   String selectToString(Select token) { |   String selectToString(Select token) { | ||||||
|     final Map<Object, String> cases = { |     final Map<Object, String> cases = { | ||||||
|       for (var e in token.options.map( |       for (final e in token.options.map( | ||||||
|         (o) => MapEntry( |         (o) => MapEntry( | ||||||
|           o.name, |           o.name, | ||||||
|           o.value.map(parsedElementToString).join(), |           o.value.map(parsedElementToString).join(), | ||||||
|  | |||||||
| @ -27,7 +27,7 @@ environment: | |||||||
| # the latest version available on pub.dev. To see which dependencies have newer | # the latest version available on pub.dev. To see which dependencies have newer | ||||||
| # versions available, run `flutter pub outdated`. | # versions available, run `flutter pub outdated`. | ||||||
| dependencies: | dependencies: | ||||||
|   http: ^0.13.4 |   http: ^1.1.0 | ||||||
| 
 | 
 | ||||||
|   wyatt_type_utils: |   wyatt_type_utils: | ||||||
|     path: "../" |     path: "../" | ||||||
|  | |||||||
| @ -27,7 +27,7 @@ class Bars extends DemoPage { | |||||||
|               ), |               ), | ||||||
|             ), |             ), | ||||||
|             actions: [ |             actions: [ | ||||||
|               IconButton(onPressed: () {}, icon: const Icon(Icons.menu)) |               IconButton(onPressed: () {}, icon: const Icon(Icons.menu)), | ||||||
|             ], |             ], | ||||||
|           ), |           ), | ||||||
|           const Gap(20), |           const Gap(20), | ||||||
| @ -54,13 +54,13 @@ class Bars extends DemoPage { | |||||||
|               ), |               ), | ||||||
|               ListTile( |               ListTile( | ||||||
|                 title: Text('Votre programme'), |                 title: Text('Votre programme'), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|             actions: [ |             actions: [ | ||||||
|               IconButton( |               IconButton( | ||||||
|                 onPressed: () {}, |                 onPressed: () {}, | ||||||
|                 icon: const Icon(Icons.clear), |                 icon: const Icon(Icons.clear), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|           ), |           ), | ||||||
|           const Gap(20), |           const Gap(20), | ||||||
| @ -81,7 +81,7 @@ class Bars extends DemoPage { | |||||||
|               TextWrapper('ACCUEIL'), |               TextWrapper('ACCUEIL'), | ||||||
|               TextWrapper('VOTRE PROGRAMME'), |               TextWrapper('VOTRE PROGRAMME'), | ||||||
|               TextWrapper('LE STUDIO'), |               TextWrapper('LE STUDIO'), | ||||||
|               TextWrapper('SAVOIR FAIRE') |               TextWrapper('SAVOIR FAIRE'), | ||||||
|             ], |             ], | ||||||
|           ), |           ), | ||||||
|         ], |         ], | ||||||
|  | |||||||
| @ -50,7 +50,7 @@ class Buttons extends DemoPage { | |||||||
|               Gap(20), |               Gap(20), | ||||||
|               SimpleIconButtons(), |               SimpleIconButtons(), | ||||||
|               Gap(20), |               Gap(20), | ||||||
|               FileSelectionButtons() |               FileSelectionButtons(), | ||||||
|             ], |             ], | ||||||
|           ), |           ), | ||||||
|         ], |         ], | ||||||
|  | |||||||
| @ -43,12 +43,12 @@ class PortfolioCards extends StatelessWidget { | |||||||
|                     'assets/images/mockup_1.png', |                     'assets/images/mockup_1.png', | ||||||
|                     alignment: Alignment.topCenter, |                     alignment: Alignment.topCenter, | ||||||
|                     fit: BoxFit.cover, |                     fit: BoxFit.cover, | ||||||
|                   ) |                   ), | ||||||
|                 ], |                 ], | ||||||
|                 keywords: const [ |                 keywords: const [ | ||||||
|                   TextWrapper('UI Design'), |                   TextWrapper('UI Design'), | ||||||
|                   TextWrapper('Developpement'), |                   TextWrapper('Developpement'), | ||||||
|                   TextWrapper('Deploiement') |                   TextWrapper('Deploiement'), | ||||||
|                 ], |                 ], | ||||||
|               ), |               ), | ||||||
|               const Gap(20), |               const Gap(20), | ||||||
| @ -78,9 +78,9 @@ class PortfolioCards extends StatelessWidget { | |||||||
|                     'assets/images/mockup_1.png', |                     'assets/images/mockup_1.png', | ||||||
|                     alignment: Alignment.topCenter, |                     alignment: Alignment.topCenter, | ||||||
|                     fit: BoxFit.cover, |                     fit: BoxFit.cover, | ||||||
|                   ) |                   ), | ||||||
|                 ], |                 ], | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|           ), |           ), | ||||||
|           const Gap(20), |           const Gap(20), | ||||||
| @ -118,12 +118,12 @@ class PortfolioCards extends StatelessWidget { | |||||||
|                     'assets/images/mockup_1.png', |                     'assets/images/mockup_1.png', | ||||||
|                     alignment: Alignment.topCenter, |                     alignment: Alignment.topCenter, | ||||||
|                     fit: BoxFit.cover, |                     fit: BoxFit.cover, | ||||||
|                   ) |                   ), | ||||||
|                 ], |                 ], | ||||||
|                 keywords: const [ |                 keywords: const [ | ||||||
|                   TextWrapper('UI Design'), |                   TextWrapper('UI Design'), | ||||||
|                   TextWrapper('Developpement'), |                   TextWrapper('Developpement'), | ||||||
|                   TextWrapper('Deploiement') |                   TextWrapper('Deploiement'), | ||||||
|                 ], |                 ], | ||||||
|               ), |               ), | ||||||
|               const Gap(20), |               const Gap(20), | ||||||
| @ -168,12 +168,12 @@ class PortfolioCards extends StatelessWidget { | |||||||
|                     'assets/images/mockup_1.png', |                     'assets/images/mockup_1.png', | ||||||
|                     alignment: Alignment.topCenter, |                     alignment: Alignment.topCenter, | ||||||
|                     fit: BoxFit.cover, |                     fit: BoxFit.cover, | ||||||
|                   ) |                   ), | ||||||
|                 ], |                 ], | ||||||
|                 keywords: const [ |                 keywords: const [ | ||||||
|                   TextWrapper('UI Design'), |                   TextWrapper('UI Design'), | ||||||
|                   TextWrapper('Developpement'), |                   TextWrapper('Developpement'), | ||||||
|                   TextWrapper('Deploiement') |                   TextWrapper('Deploiement'), | ||||||
|                 ], |                 ], | ||||||
|               ), |               ), | ||||||
|             ], |             ], | ||||||
|  | |||||||
| @ -47,7 +47,7 @@ class SkillCards extends StatelessWidget { | |||||||
|                       gradientColors: |                       gradientColors: | ||||||
|                           const MultiColor([Colors.red, Colors.orange]), |                           const MultiColor([Colors.red, Colors.orange]), | ||||||
|                     ), |                     ), | ||||||
|                   ) |                   ), | ||||||
|                 ], |                 ], | ||||||
|                 bulletColors: const MultiColor([Colors.red, Colors.orange]), |                 bulletColors: const MultiColor([Colors.red, Colors.orange]), | ||||||
|                 title: const TextWrapper('Lorem Ipsum'), |                 title: const TextWrapper('Lorem Ipsum'), | ||||||
| @ -78,7 +78,7 @@ class SkillCards extends StatelessWidget { | |||||||
|                       gradientColors: |                       gradientColors: | ||||||
|                           const MultiColor([Colors.blue, Colors.green]), |                           const MultiColor([Colors.blue, Colors.green]), | ||||||
|                     ), |                     ), | ||||||
|                   ) |                   ), | ||||||
|                 ], |                 ], | ||||||
|                 bulletColors: const MultiColor([Colors.blue, Colors.green]), |                 bulletColors: const MultiColor([Colors.blue, Colors.green]), | ||||||
|                 title: const TextWrapper('Lorem Ipsum'), |                 title: const TextWrapper('Lorem Ipsum'), | ||||||
|  | |||||||
| @ -15,8 +15,8 @@ dependencies: | |||||||
| 
 | 
 | ||||||
|   flutter_bloc: ^8.1.2 |   flutter_bloc: ^8.1.2 | ||||||
|   flutter_localizations: { sdk: flutter } |   flutter_localizations: { sdk: flutter } | ||||||
|   gap: ^2.0.1 |   gap: ^3.0.1 | ||||||
|   google_fonts: ^4.0.3 |   google_fonts: ^5.1.0 | ||||||
| 
 | 
 | ||||||
|   wyatt_ui_components: |   wyatt_ui_components: | ||||||
|     hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub |     hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub | ||||||
|  | |||||||
| @ -63,7 +63,7 @@ class NavigationItem extends StatelessWidget { | |||||||
|                         .themeExtension<TopBarThemeExtension>() |                         .themeExtension<TopBarThemeExtension>() | ||||||
|                         ?.selectedIndicatorColors, |                         ?.selectedIndicatorColors, | ||||||
|                     TopBarThemeExtensionDefault.from(Theme.of(context)) |                     TopBarThemeExtensionDefault.from(Theme.of(context)) | ||||||
|                         .selectedIndicatorColors |                         .selectedIndicatorColors, | ||||||
|                   ], |                   ], | ||||||
|                   valueValidator: (value) => value?.isGradient, |                   valueValidator: (value) => value?.isGradient, | ||||||
|                   transform: (value) => |                   transform: (value) => | ||||||
| @ -75,7 +75,7 @@ class NavigationItem extends StatelessWidget { | |||||||
|                         .themeExtension<TopBarThemeExtension>() |                         .themeExtension<TopBarThemeExtension>() | ||||||
|                         ?.selectedIndicatorColors, |                         ?.selectedIndicatorColors, | ||||||
|                     TopBarThemeExtensionDefault.from(Theme.of(context)) |                     TopBarThemeExtensionDefault.from(Theme.of(context)) | ||||||
|                         .selectedIndicatorColors |                         .selectedIndicatorColors, | ||||||
|                   ], |                   ], | ||||||
|                   valueValidator: (value) => value?.isColor, |                   valueValidator: (value) => value?.isColor, | ||||||
|                   transform: (value) => value?.color, |                   transform: (value) => value?.color, | ||||||
|  | |||||||
| @ -177,7 +177,7 @@ class FileSelectionButtonScreen | |||||||
|                       ) |                       ) | ||||||
|                     : null, |                     : null, | ||||||
|                 boxShadow: [ |                 boxShadow: [ | ||||||
|                   if (style.shadow != null) ...[style.shadow!] |                   if (style.shadow != null) ...[style.shadow!], | ||||||
|                 ], |                 ], | ||||||
|                 borderRadius: style.radius, |                 borderRadius: style.radius, | ||||||
|               ), |               ), | ||||||
| @ -214,7 +214,7 @@ class FileSelectionButtonScreen | |||||||
|                             GradientText.fromWrapper( |                             GradientText.fromWrapper( | ||||||
|                               title!, |                               title!, | ||||||
|                               gradientColors: style.foregroundColors, |                               gradientColors: style.foregroundColors, | ||||||
|                             ) |                             ), | ||||||
|                           ], |                           ], | ||||||
| 
 | 
 | ||||||
|                           /// Choose color |                           /// Choose color | ||||||
|  | |||||||
| @ -156,7 +156,7 @@ class FlatButtonScreen extends CubitScreen<ButtonCubit, ButtonState> { | |||||||
|                   : null, |                   : null, | ||||||
| 
 | 
 | ||||||
|               boxShadow: [ |               boxShadow: [ | ||||||
|                 if (style.shadow != null) ...[style.shadow!] |                 if (style.shadow != null) ...[style.shadow!], | ||||||
|               ], |               ], | ||||||
|               borderRadius: style.radius, |               borderRadius: style.radius, | ||||||
|             ), |             ), | ||||||
| @ -174,7 +174,7 @@ class FlatButtonScreen extends CubitScreen<ButtonCubit, ButtonState> { | |||||||
|                     if (prefix != null && |                     if (prefix != null && | ||||||
|                         (prefix is Icon?) && |                         (prefix is Icon?) && | ||||||
|                         ((prefix as Icon?)?.color != null)) ...[ |                         ((prefix as Icon?)?.color != null)) ...[ | ||||||
|                       prefix! |                       prefix!, | ||||||
|                     ] else if (style.foregroundColors?.color != null && |                     ] else if (style.foregroundColors?.color != null && | ||||||
|                         prefix != null) ...[ |                         prefix != null) ...[ | ||||||
|                       ColorFiltered( |                       ColorFiltered( | ||||||
| @ -183,9 +183,9 @@ class FlatButtonScreen extends CubitScreen<ButtonCubit, ButtonState> { | |||||||
|                           BlendMode.srcIn, |                           BlendMode.srcIn, | ||||||
|                         ), |                         ), | ||||||
|                         child: prefix, |                         child: prefix, | ||||||
|                       ) |                       ), | ||||||
|                     ] else ...[ |                     ] else ...[ | ||||||
|                       prefix ?? const SizedBox.shrink() |                       prefix ?? const SizedBox.shrink(), | ||||||
|                     ], |                     ], | ||||||
|                     Gap(style.padding?.vertical ?? 10), |                     Gap(style.padding?.vertical ?? 10), | ||||||
| 
 | 
 | ||||||
| @ -204,13 +204,13 @@ class FlatButtonScreen extends CubitScreen<ButtonCubit, ButtonState> { | |||||||
|                         label!, |                         label!, | ||||||
|                         style: style.labelStyle, |                         style: style.labelStyle, | ||||||
|                         gradientColors: style.foregroundColors, |                         gradientColors: style.foregroundColors, | ||||||
|                       ) |                       ), | ||||||
|                     ], |                     ], | ||||||
|                     Gap(style.padding?.vertical ?? 10), |                     Gap(style.padding?.vertical ?? 10), | ||||||
|                     if (suffix != null && |                     if (suffix != null && | ||||||
|                         (suffix is Icon?) && |                         (suffix is Icon?) && | ||||||
|                         ((suffix as Icon?)?.color != null)) ...[ |                         ((suffix as Icon?)?.color != null)) ...[ | ||||||
|                       suffix! |                       suffix!, | ||||||
|                     ] else if (style.foregroundColors?.colors != null && |                     ] else if (style.foregroundColors?.colors != null && | ||||||
|                         style.foregroundColors!.colors.isNotEmpty && |                         style.foregroundColors!.colors.isNotEmpty && | ||||||
|                         suffix != null) ...[ |                         suffix != null) ...[ | ||||||
| @ -220,7 +220,7 @@ class FlatButtonScreen extends CubitScreen<ButtonCubit, ButtonState> { | |||||||
|                           BlendMode.srcIn, |                           BlendMode.srcIn, | ||||||
|                         ), |                         ), | ||||||
|                         child: suffix, |                         child: suffix, | ||||||
|                       ) |                       ), | ||||||
|                     ] else if (style.foregroundColors?.color != null && |                     ] else if (style.foregroundColors?.color != null && | ||||||
|                         suffix != null) ...[ |                         suffix != null) ...[ | ||||||
|                       ColorFiltered( |                       ColorFiltered( | ||||||
| @ -229,9 +229,9 @@ class FlatButtonScreen extends CubitScreen<ButtonCubit, ButtonState> { | |||||||
|                           BlendMode.srcIn, |                           BlendMode.srcIn, | ||||||
|                         ), |                         ), | ||||||
|                         child: suffix, |                         child: suffix, | ||||||
|                       ) |                       ), | ||||||
|                     ] else ...[ |                     ] else ...[ | ||||||
|                       suffix ?? const SizedBox.shrink() |                       suffix ?? const SizedBox.shrink(), | ||||||
|                     ], |                     ], | ||||||
|                   ], |                   ], | ||||||
|                 ), |                 ), | ||||||
|  | |||||||
| @ -152,7 +152,7 @@ class SimpleIconButtonScreen extends CubitScreen<ButtonCubit, ButtonState> { | |||||||
|                         ) |                         ) | ||||||
|                       : null, |                       : null, | ||||||
|                   boxShadow: [ |                   boxShadow: [ | ||||||
|                     if (style.shadow != null) ...[style.shadow!] |                     if (style.shadow != null) ...[style.shadow!], | ||||||
|                   ], |                   ], | ||||||
|                   borderRadius: style.radius, |                   borderRadius: style.radius, | ||||||
|                 ), |                 ), | ||||||
|  | |||||||
| @ -181,7 +181,7 @@ class SymbolButtonScreen | |||||||
|                             ) |                             ) | ||||||
|                           : null, |                           : null, | ||||||
|                       boxShadow: [ |                       boxShadow: [ | ||||||
|                         if (style.shadow != null) ...[style.shadow!] |                         if (style.shadow != null) ...[style.shadow!], | ||||||
|                       ], |                       ], | ||||||
|                       borderRadius: style.radius, |                       borderRadius: style.radius, | ||||||
|                     ), |                     ), | ||||||
|  | |||||||
| @ -102,7 +102,7 @@ class PricingCardTitles extends StatelessWidget { | |||||||
|               ], |               ], | ||||||
|             ), |             ), | ||||||
|             const Gap(_bodyTopSpacing), |             const Gap(_bodyTopSpacing), | ||||||
|           ] |           ], | ||||||
|         ], |         ], | ||||||
|         RichText( |         RichText( | ||||||
|           text: TextSpan( |           text: TextSpan( | ||||||
| @ -111,7 +111,7 @@ class PricingCardTitles extends StatelessWidget { | |||||||
|                 TextSpan( |                 TextSpan( | ||||||
|                   text: price.text.data, |                   text: price.text.data, | ||||||
|                   style: price.text.style, |                   style: price.text.style, | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|               if (pricing?.hasAsterisk ?? false) ...[ |               if (pricing?.hasAsterisk ?? false) ...[ | ||||||
|                 WidgetSpan( |                 WidgetSpan( | ||||||
| @ -128,7 +128,7 @@ class PricingCardTitles extends StatelessWidget { | |||||||
|                 TextSpan( |                 TextSpan( | ||||||
|                   text: period.text.data, |                   text: period.text.data, | ||||||
|                   style: period.text.style, |                   style: period.text.style, | ||||||
|                 ) |                 ), | ||||||
|               ], |               ], | ||||||
|             ], |             ], | ||||||
|           ), |           ), | ||||||
|  | |||||||
| @ -134,7 +134,7 @@ class QuoteCard extends QuoteCardComponent with $QuoteCardCWMixin { | |||||||
|                     ], |                     ], | ||||||
|                   ], |                   ], | ||||||
|                 ), |                 ), | ||||||
|               ) |               ), | ||||||
|             ], |             ], | ||||||
|           ), |           ), | ||||||
|         ], |         ], | ||||||
|  | |||||||
| @ -147,7 +147,7 @@ class CardWrapper extends StatelessWidget { | |||||||
|       [ |       [ | ||||||
|         radius, |         radius, | ||||||
|         Theme.of(context).extension<CardThemeExtension>()?.radius, |         Theme.of(context).extension<CardThemeExtension>()?.radius, | ||||||
|         CardThemeExtensionDefault.from(Theme.of(context)).radius |         CardThemeExtensionDefault.from(Theme.of(context)).radius, | ||||||
|       ], |       ], | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
| @ -155,7 +155,7 @@ class CardWrapper extends StatelessWidget { | |||||||
|       [ |       [ | ||||||
|         minSize, |         minSize, | ||||||
|         Theme.of(context).extension<CardThemeExtension>()?.minSize, |         Theme.of(context).extension<CardThemeExtension>()?.minSize, | ||||||
|         CardThemeExtensionDefault.from(Theme.of(context)).minSize |         CardThemeExtensionDefault.from(Theme.of(context)).minSize, | ||||||
|       ], |       ], | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
| @ -163,7 +163,7 @@ class CardWrapper extends StatelessWidget { | |||||||
|       [ |       [ | ||||||
|         maxSize, |         maxSize, | ||||||
|         Theme.of(context).extension<CardThemeExtension>()?.maxSize, |         Theme.of(context).extension<CardThemeExtension>()?.maxSize, | ||||||
|         CardThemeExtensionDefault.from(Theme.of(context)).maxSize |         CardThemeExtensionDefault.from(Theme.of(context)).maxSize, | ||||||
|       ], |       ], | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
| @ -178,7 +178,8 @@ class CardWrapper extends StatelessWidget { | |||||||
|               Theme.of(context) |               Theme.of(context) | ||||||
|                   .extension<CardThemeExtension>() |                   .extension<CardThemeExtension>() | ||||||
|                   ?.backgroundColors, |                   ?.backgroundColors, | ||||||
|               CardThemeExtensionDefault.from(Theme.of(context)).backgroundColors |               CardThemeExtensionDefault.from(Theme.of(context)) | ||||||
|  |                   .backgroundColors, | ||||||
|             ], |             ], | ||||||
|             valueValidator: (multiColor) => multiColor?.isGradient, |             valueValidator: (multiColor) => multiColor?.isGradient, | ||||||
|             transform: (multiColor) => |             transform: (multiColor) => | ||||||
|  | |||||||
| @ -12,9 +12,9 @@ dependencies: | |||||||
|   dotted_border: ^2.0.0+3 |   dotted_border: ^2.0.0+3 | ||||||
|   equatable: ^2.0.5 |   equatable: ^2.0.5 | ||||||
|   flutter: { sdk: flutter } |   flutter: { sdk: flutter } | ||||||
|   flutter_animate: ^3.0.0 |   flutter_animate: ^4.2.0+1 | ||||||
|   flutter_bloc: ^8.1.2 |   flutter_bloc: ^8.1.2 | ||||||
|   gap: ^2.0.1 |   gap: ^3.0.1 | ||||||
|   meta: ^1.8.0 |   meta: ^1.8.0 | ||||||
|   wyatt_bloc_helper: |   wyatt_bloc_helper: | ||||||
|     hosted: |     hosted: | ||||||
|  | |||||||
| @ -32,7 +32,7 @@ dependencies: | |||||||
|   wyatt_ui_layout: |   wyatt_ui_layout: | ||||||
|     path: "../" |     path: "../" | ||||||
| 
 | 
 | ||||||
|   go_router: ^5.0.1 |   go_router: ^10.1.0 | ||||||
| 
 | 
 | ||||||
|   wyatt_ui_components: |   wyatt_ui_components: | ||||||
|     hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub |     hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub | ||||||
|  | |||||||
| @ -10,7 +10,7 @@ environment: | |||||||
| 
 | 
 | ||||||
| dependencies: | dependencies: | ||||||
|   flutter: { sdk: flutter } |   flutter: { sdk: flutter } | ||||||
|   gap: ^2.0.1 |   gap: ^3.0.1 | ||||||
| 
 | 
 | ||||||
|   wyatt_ui_components: |   wyatt_ui_components: | ||||||
|     hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub |     hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user