Compare commits

..

No commits in common. "a4c73421d28f30292a019c2e8575172517e36c29" and "543b9421cadae5081569c21e19feca585054165b" have entirely different histories.

53 changed files with 165 additions and 156 deletions

View File

@ -25,7 +25,7 @@ class AlbumMockDataSourceImpl extends AlbumRemoteDataSource {
id: 1, id: 1,
userId: 1, userId: 1,
title: 'Album 1', title: 'Album 1',
), )
}; };
@override @override

View File

@ -58,8 +58,8 @@ class PhotosGridThumbnail
bottom: 10, bottom: 10,
right: 10, right: 10,
child: Icon(Icons.favorite), child: Icon(Icons.favorite),
), )
], ]
], ],
), ),
); );

View File

@ -71,8 +71,7 @@ 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 = final isOnboarding = AppRouter.publicRoutes.contains(state.subloc);
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) {

View File

@ -30,11 +30,11 @@ dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
go_router: ^10.1.0 go_router: ^5.1.5
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: ^6.1.4 google_sign_in: ^5.4.2
get_it: ^7.2.0 get_it: ^7.2.0
wyatt_authentication_bloc: wyatt_authentication_bloc:

View File

@ -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,

View File

@ -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: ^6.1.4 google_sign_in: ^5.4.2
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: ^1.1.0 http: ^0.13.5
dev_dependencies: dev_dependencies:
flutter_test: { sdk: flutter } flutter_test: { sdk: flutter }
bloc_test: ^9.1.0 bloc_test: ^9.1.0
mocktail: ^1.0.0 mocktail: ^0.3.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/

View File

@ -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,
), )
], ],
); );
}); });

View File

@ -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,
), )
], ],
); );
}); });

View File

@ -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,
), )
], ],
); );
}); });

View File

@ -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,
); );

View File

@ -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 = <

View File

@ -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,
); );

View File

@ -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));

View File

@ -53,8 +53,7 @@ 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: iosClientId: '100151285458-a9notq1k1padf0vk9ove8ll3amjgi7mn.apps.googleusercontent.com',
'100151285458-a9notq1k1padf0vk9ove8ll3amjgi7mn.apps.googleusercontent.com',
iosBundleId: 'com.example.notificationBlocExample', iosBundleId: 'com.example.notificationBlocExample',
); );
} }

View File

@ -22,10 +22,11 @@ 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(

View File

@ -18,10 +18,11 @@ 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) =>

View File

@ -18,10 +18,11 @@ 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();

View File

@ -25,10 +25,11 @@ 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;

View File

@ -18,10 +18,11 @@ 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) =>

View File

@ -20,10 +20,11 @@ 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) {

View File

@ -21,10 +21,11 @@ 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) {

View File

@ -30,6 +30,11 @@ 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,
@ -39,11 +44,6 @@ 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());

View File

@ -17,9 +17,10 @@
part of 'cloud_messaging_cubit.dart'; part of 'cloud_messaging_cubit.dart';
class CloudmessagingState extends Equatable { class CloudmessagingState extends Equatable {
const CloudmessagingState([this.remoteNotification]);
final RemoteNotification? remoteNotification; final RemoteNotification? remoteNotification;
const CloudmessagingState([this.remoteNotification]);
@override @override
List<Object?> get props => [remoteNotification]; List<Object?> get props => [remoteNotification];
} }

View File

@ -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: ^6.2.0 analyzer: ^5.4.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

View File

@ -33,7 +33,8 @@ 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,

View File

@ -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 ?? []);

View File

@ -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 ?? []);

View File

@ -26,8 +26,9 @@ class FormDifference extends FormOperation {
@override @override
WyattForm call(WyattForm a, WyattForm b) { WyattForm call(WyattForm a, WyattForm b) {
final inputs = <FormInput<dynamic, final inputs = <
FormInputValidator<dynamic, ValidationError>, dynamic>>[]; FormInput<dynamic, FormInputValidator<dynamic, ValidationError>,
dynamic>>[];
for (final i in a.inputs) { for (final i in a.inputs) {
if (!b.containsKey(i.key)) { if (!b.containsKey(i.key)) {

View File

@ -26,8 +26,9 @@ class FormIntersection extends FormOperation {
@override @override
WyattForm call(WyattForm a, WyattForm b) { WyattForm call(WyattForm a, WyattForm b) {
final inputs = <FormInput<dynamic, final inputs = <
FormInputValidator<dynamic, ValidationError>, dynamic>>[]; FormInput<dynamic, FormInputValidator<dynamic, ValidationError>,
dynamic>>[];
for (final i in a.inputs) { for (final i in a.inputs) {
if (b.containsKey(i.key)) { if (b.containsKey(i.key)) {

View File

@ -26,8 +26,9 @@ class FormUnion extends FormOperation {
@override @override
WyattForm call(WyattForm a, WyattForm b) { WyattForm call(WyattForm a, WyattForm b) {
final inputs = <FormInput<dynamic, final inputs = <
FormInputValidator<dynamic, ValidationError>, dynamic>>[]; FormInput<dynamic, FormInputValidator<dynamic, ValidationError>,
dynamic>>[];
for (final i in a.inputs) { for (final i in a.inputs) {
inputs.add(i); inputs.add(i);

View File

@ -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('&');

View File

@ -10,7 +10,7 @@ environment:
dependencies: dependencies:
crypto: ^3.0.2 crypto: ^3.0.2
http: ^1.1.0 http: ^0.13.4
dev_dependencies: dev_dependencies:
wyatt_analysis: wyatt_analysis:

View File

@ -44,7 +44,7 @@ class App extends StatelessWidget {
), ),
), ),
GlobalMaterialLocalizations.delegate, GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate, GlobalWidgetsLocalizations.delegate
], ],
home: Scaffold( home: Scaffold(
appBar: AppBar( appBar: AppBar(

View File

@ -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 (final e in token.options.map( for (var e in token.options.map(
(o) => MapEntry( (o) => MapEntry(
o.name, o.name,
o.value.map(parsedElementToString).join(), o.value.map(parsedElementToString).join(),

View File

@ -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: ^1.1.0 http: ^0.13.4
wyatt_type_utils: wyatt_type_utils:
path: "../" path: "../"

View File

@ -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')
], ],
), ),
], ],

View File

@ -50,7 +50,7 @@ class Buttons extends DemoPage {
Gap(20), Gap(20),
SimpleIconButtons(), SimpleIconButtons(),
Gap(20), Gap(20),
FileSelectionButtons(), FileSelectionButtons()
], ],
), ),
], ],

View File

@ -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')
], ],
), ),
], ],

View File

@ -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'),

View File

@ -15,8 +15,8 @@ dependencies:
flutter_bloc: ^8.1.2 flutter_bloc: ^8.1.2
flutter_localizations: { sdk: flutter } flutter_localizations: { sdk: flutter }
gap: ^3.0.1 gap: ^2.0.1
google_fonts: ^5.1.0 google_fonts: ^4.0.3
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

View File

@ -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,

View File

@ -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

View File

@ -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()
], ],
], ],
), ),

View File

@ -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,
), ),

View File

@ -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,
), ),

View File

@ -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,
), )
], ],
], ],
), ),

View File

@ -134,7 +134,7 @@ class QuoteCard extends QuoteCardComponent with $QuoteCardCWMixin {
], ],
], ],
), ),
), )
], ],
), ),
], ],

View File

@ -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,8 +178,7 @@ class CardWrapper extends StatelessWidget {
Theme.of(context) Theme.of(context)
.extension<CardThemeExtension>() .extension<CardThemeExtension>()
?.backgroundColors, ?.backgroundColors,
CardThemeExtensionDefault.from(Theme.of(context)) CardThemeExtensionDefault.from(Theme.of(context)).backgroundColors
.backgroundColors,
], ],
valueValidator: (multiColor) => multiColor?.isGradient, valueValidator: (multiColor) => multiColor?.isGradient,
transform: (multiColor) => transform: (multiColor) =>

View File

@ -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: ^4.2.0+1 flutter_animate: ^3.0.0
flutter_bloc: ^8.1.2 flutter_bloc: ^8.1.2
gap: ^3.0.1 gap: ^2.0.1
meta: ^1.8.0 meta: ^1.8.0
wyatt_bloc_helper: wyatt_bloc_helper:
hosted: hosted:

View File

@ -32,7 +32,7 @@ dependencies:
wyatt_ui_layout: wyatt_ui_layout:
path: "../" path: "../"
go_router: ^10.1.0 go_router: ^5.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

View File

@ -10,7 +10,7 @@ environment:
dependencies: dependencies:
flutter: { sdk: flutter } flutter: { sdk: flutter }
gap: ^3.0.1 gap: ^2.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