Compare commits

...

5 Commits

Author SHA1 Message Date
a4c73421d2 fix(authentication_bloc): upgrade google sign to his major v
Some checks failed
continuous-integration/drone/pr Build is failing
2023-08-28 09:00:59 +00:00
227158725d fix: apply dart format 2023-08-28 09:00:59 +00:00
cc41b7b589 fix: apply dart fix --apply 2023-08-28 09:00:59 +00:00
e74346b655 fix(authentication_bloc): go router version refactoring 2023-08-28 09:00:59 +00:00
54bd147e87 chore: upgrade deps to major versions 2023-08-28 09:00:59 +00:00
53 changed files with 156 additions and 165 deletions

View File

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

View File

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

View File

@ -71,7 +71,8 @@ class App extends StatelessWidget {
if (authState.status != previous?.status) {
previous = authState;
// 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) {
debugPrint('Not logged');
if (!isOnboarding) {

View File

@ -30,11 +30,11 @@ dependencies:
flutter:
sdk: flutter
go_router: ^5.1.5
go_router: ^10.1.0
firebase_core: ^2.1.1
flutter_bloc: ^8.1.1
firebase_auth: ^4.2.0
google_sign_in: ^5.4.2
google_sign_in: ^6.1.4
get_it: ^7.2.0
wyatt_authentication_bloc:

View File

@ -33,7 +33,7 @@ abstract class Forms {
FormInput(
AuthFormField.password,
customPasswordValidator ?? const Password.pure(),
)
),
],
name: AuthFormName.signInForm,
);
@ -55,7 +55,7 @@ abstract class Forms {
AuthFormField.password,
customPasswordValidator ?? const Password.pure(),
),
...extraSignUpInputs ?? []
...extraSignUpInputs ?? [],
],
name: AuthFormName.signUpForm,
);
@ -93,7 +93,7 @@ abstract class Forms {
customPasswordValidator ?? const Password.pure(),
metadata: const FormInputMetadata(isRequired: false),
),
...extraEditAccountInputs ?? []
...extraEditAccountInputs ?? [],
],
validationStrategy: const OnlyRequiredInputValidator(),
name: AuthFormName.editAccountForm,

View File

@ -32,8 +32,8 @@ class AuthenticationMockCacheDataSourceImpl<Data>
@override
Future<Account?> getCachedAccount() async {
await Future<void>.delayed(const Duration(milliseconds: 200));
return null;
return null;
}
@override

View File

@ -15,7 +15,7 @@ dependencies:
flutter_bloc: ^8.1.1
equatable: ^2.0.5
firebase_auth: ^4.2.0
google_sign_in: ^5.4.2
google_sign_in: ^6.1.4
rxdart: ^0.27.7
wyatt_form_bloc:
@ -30,12 +30,12 @@ dependencies:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub/
version: ^0.0.5
flutter_secure_storage: ^8.0.0
http: ^0.13.5
http: ^1.1.0
dev_dependencies:
flutter_test: { sdk: flutter }
bloc_test: ^9.1.0
mocktail: ^0.3.0
mocktail: ^1.0.0
wyatt_analysis:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub/

View File

@ -46,7 +46,7 @@ void main() {
AuthenticationSession.fromEvent(
SignedInFromCacheEvent(account: account),
data: 10,
)
),
]),
);
@ -113,7 +113,7 @@ void main() {
),
const EmailVerificationState(
status: FormStatus.submissionSuccess,
)
),
],
);
@ -135,7 +135,7 @@ void main() {
const EmailVerificationState(
errorMessage: 'erreur',
status: FormStatus.submissionFailure,
)
),
],
);
});
@ -192,7 +192,7 @@ void main() {
const EmailVerificationState(
isVerified: true,
status: FormStatus.submissionSuccess,
)
),
],
);
@ -214,7 +214,7 @@ void main() {
),
const EmailVerificationState(
status: FormStatus.submissionSuccess,
)
),
],
);
@ -236,7 +236,7 @@ void main() {
const EmailVerificationState(
errorMessage: 'erreur',
status: FormStatus.submissionFailure,
)
),
],
);
});

View File

@ -41,7 +41,7 @@ void main() {
final WyattForm form = WyattFormImpl(
[
FormInput(AuthFormField.email, const Email.pure()),
FormInput(AuthFormField.password, const Password.pure())
FormInput(AuthFormField.password, const Password.pure()),
],
name: AuthFormName.passwordResetForm,
);
@ -260,7 +260,7 @@ void main() {
name: AuthFormName.passwordResetForm,
),
status: FormStatus.submissionSuccess,
)
),
],
);
@ -327,7 +327,7 @@ void main() {
name: AuthFormName.passwordResetForm,
),
status: FormStatus.submissionFailure,
)
),
],
);
});

View File

@ -46,7 +46,7 @@ void main() {
final WyattForm form = WyattFormImpl(
[
FormInput(AuthFormField.email, const Email.pure()),
FormInput(AuthFormField.password, const Password.pure())
FormInput(AuthFormField.password, const Password.pure()),
],
name: AuthFormName.signInForm,
);
@ -102,7 +102,7 @@ void main() {
AuthFormField.email,
const Email.dirty(invalidEmailString),
),
FormInput(AuthFormField.password, const Password.pure())
FormInput(AuthFormField.password, const Password.pure()),
],
name: AuthFormName.signInForm,
),
@ -126,7 +126,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -145,7 +145,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -163,7 +163,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -191,7 +191,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(invalidPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -215,7 +215,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.pure(),
)
),
],
name: AuthFormName.signInForm,
),
@ -234,7 +234,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.pure(),
)
),
],
name: AuthFormName.signInForm,
),
@ -252,7 +252,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -287,7 +287,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -312,7 +312,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -331,7 +331,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -364,7 +364,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -383,7 +383,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -401,7 +401,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -417,12 +417,12 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
status: FormStatus.submissionSuccess,
)
),
],
);
@ -448,7 +448,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -467,7 +467,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -485,7 +485,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -501,12 +501,12 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
status: FormStatus.submissionFailure,
)
),
],
);
});
@ -527,7 +527,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -566,7 +566,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -584,7 +584,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.pure(),
)
),
],
name: AuthFormName.signInForm,
),
@ -600,12 +600,12 @@ void main() {
FormInput(
AuthFormField.password,
const Password.pure(),
)
),
],
name: AuthFormName.signInForm,
),
status: FormStatus.submissionSuccess,
)
),
],
);
@ -630,7 +630,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signInForm,
),
@ -648,7 +648,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.pure(),
)
),
],
name: AuthFormName.signInForm,
),
@ -664,12 +664,12 @@ void main() {
FormInput(
AuthFormField.password,
const Password.pure(),
)
),
],
name: AuthFormName.signInForm,
),
status: FormStatus.submissionFailure,
)
),
],
);
});

View File

@ -22,7 +22,7 @@ void main() {
final WyattForm form = WyattFormImpl(
[
FormInput(AuthFormField.email, const Email.pure()),
FormInput(AuthFormField.password, const Password.pure())
FormInput(AuthFormField.password, const Password.pure()),
],
name: AuthFormName.signInForm,
);

View File

@ -46,7 +46,7 @@ void main() {
final WyattForm form = WyattFormImpl(
[
FormInput(AuthFormField.email, const Email.pure()),
FormInput(AuthFormField.password, const Password.pure())
FormInput(AuthFormField.password, const Password.pure()),
],
name: AuthFormName.signUpForm,
);
@ -98,7 +98,7 @@ void main() {
AuthFormField.email,
const Email.dirty(invalidEmailString),
),
FormInput(AuthFormField.password, const Password.pure())
FormInput(AuthFormField.password, const Password.pure()),
],
name: AuthFormName.signUpForm,
),
@ -122,7 +122,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
@ -141,7 +141,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
@ -159,7 +159,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
@ -187,7 +187,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(invalidPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
@ -211,7 +211,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.pure(),
)
),
],
name: AuthFormName.signUpForm,
),
@ -230,7 +230,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.pure(),
)
),
],
name: AuthFormName.signUpForm,
),
@ -248,7 +248,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
@ -283,7 +283,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
@ -302,7 +302,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
@ -335,7 +335,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
@ -354,7 +354,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
@ -372,7 +372,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
@ -388,12 +388,12 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
status: FormStatus.submissionSuccess,
)
),
],
);
@ -419,7 +419,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
@ -438,7 +438,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
@ -456,7 +456,7 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
@ -472,12 +472,12 @@ void main() {
FormInput(
AuthFormField.password,
const Password.dirty(validPasswordString),
)
),
],
name: AuthFormName.signUpForm,
),
status: FormStatus.submissionFailure,
)
),
],
);
});
@ -487,7 +487,7 @@ void main() {
FormInput<dynamic, FormInputValidator<dynamic, ValidationError>,
dynamic>>[
FormInput(AuthFormField.email, const Email.pure()),
FormInput(AuthFormField.password, const Password.pure())
FormInput(AuthFormField.password, const Password.pure()),
];
final inputsB = <

View File

@ -22,7 +22,7 @@ void main() {
final WyattForm form = WyattFormImpl(
[
FormInput(AuthFormField.email, const Email.pure()),
FormInput(AuthFormField.password, const Password.pure())
FormInput(AuthFormField.password, const Password.pure()),
],
name: AuthFormName.signInForm,
);

View File

@ -31,7 +31,7 @@ class ExampleCubit extends Cubit<CrudState> {
'DATA LOADED 1',
'DATA LOADED 2',
'DATA LOADED 3',
'DATA LOADED 4'
'DATA LOADED 4',
]),
);
await Future<void>.delayed(const Duration(seconds: 1));

View File

@ -53,7 +53,8 @@ class DefaultFirebaseOptions {
messagingSenderId: '100151285458',
projectId: 'wyatt-notification-example',
storageBucket: 'wyatt-notification-example.appspot.com',
iosClientId: '100151285458-a9notq1k1padf0vk9ove8ll3amjgi7mn.apps.googleusercontent.com',
iosClientId:
'100151285458-a9notq1k1padf0vk9ove8ll3amjgi7mn.apps.googleusercontent.com',
iosBundleId: 'com.example.notificationBlocExample',
);
}

View File

@ -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';
class CloudMessagingRepositoryImpl extends CloudMessagingRepository {
final CloudMessagingRemoteDataSource _notificationRemoteDataSource;
CloudMessagingRepositoryImpl({
required CloudMessagingRemoteDataSource notificationRemoteDataSource,
}) : _notificationRemoteDataSource = notificationRemoteDataSource;
final CloudMessagingRemoteDataSource _notificationRemoteDataSource;
@override
FutureOrResult<String?> getToken() => Result.tryCatchAsync(

View File

@ -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';
class GetCloudMessagingTokenUseCase extends AsyncUseCase<void, String?> {
final CloudMessagingRepository _notificationRepository;
GetCloudMessagingTokenUseCase({
required CloudMessagingRepository notificationRepository,
}) : _notificationRepository = notificationRepository;
final CloudMessagingRepository _notificationRepository;
@override
FutureOrResult<String?> execute(void params) =>

View File

@ -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';
class InitCloudmessagingUseCase extends AsyncUseCase<NoParam, void> {
final CloudMessagingRepository _notificationRepository;
InitCloudmessagingUseCase({
required CloudMessagingRepository notificationRepository,
}) : _notificationRepository = notificationRepository;
final CloudMessagingRepository _notificationRepository;
@override
FutureOrResult<void> execute(NoParam? params) =>
_notificationRepository.init();

View File

@ -25,11 +25,10 @@ import 'package:wyatt_type_utils/wyatt_type_utils.dart';
class ListenNotificationUseCase
extends StreamUseCase<NoParam, RemoteNotification> {
final CloudMessagingRepository _notificationRepository;
ListenNotificationUseCase({
required CloudMessagingRepository notificationRepository,
}) : _notificationRepository = notificationRepository;
final CloudMessagingRepository _notificationRepository;
@override
FutureOrResult<Stream<RemoteNotification>> execute(NoParam? params) async {
Stream<RemoteNotification>? notificationStream;

View File

@ -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';
class RequestCloudMessagingPermissionUseCase extends AsyncUseCase<void, void> {
final CloudMessagingRepository _notificationRepository;
RequestCloudMessagingPermissionUseCase({
required CloudMessagingRepository notificationRepository,
}) : _notificationRepository = notificationRepository;
final CloudMessagingRepository _notificationRepository;
@override
FutureOrResult<void> execute(void params) =>

View File

@ -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';
class SubscribeToNotificationTopicUseCase extends AsyncUseCase<String, void> {
final CloudMessagingRepository _notificationRepository;
SubscribeToNotificationTopicUseCase({
required CloudMessagingRepository notificationRepository,
}) : _notificationRepository = notificationRepository;
final CloudMessagingRepository _notificationRepository;
@override
FutureOr<void> onStart(String? params) {

View File

@ -21,11 +21,10 @@ import 'package:wyatt_cloud_messaging_bloc_base/src/domain/repositories/cloud_me
class UnsubscribeFromNotificationTopicUseCase
extends AsyncUseCase<String, void> {
final CloudMessagingRepository _notificationRepository;
UnsubscribeFromNotificationTopicUseCase({
required CloudMessagingRepository notificationRepository,
}) : _notificationRepository = notificationRepository;
final CloudMessagingRepository _notificationRepository;
@override
FutureOr<void> onStart(String? params) {

View File

@ -30,11 +30,6 @@ part 'cloud_messaging_state.dart';
typedef OnNotification = void Function(RemoteNotification);
class CloudMessagingCubit extends Cubit<CloudmessagingState> {
final ListenNotificationUseCase _listenNotification;
final SubscribeToNotificationTopicUseCase? _subscribe;
final UnsubscribeFromNotificationTopicUseCase? _unsubscribe;
final OnNotification? handleNotification;
CloudMessagingCubit({
required ListenNotificationUseCase listenNotification,
SubscribeToNotificationTopicUseCase? subscribe,
@ -44,6 +39,11 @@ class CloudMessagingCubit extends Cubit<CloudmessagingState> {
_subscribe = subscribe,
_unsubscribe = unsubscribe,
super(const CloudmessagingState());
final ListenNotificationUseCase _listenNotification;
final SubscribeToNotificationTopicUseCase? _subscribe;
final UnsubscribeFromNotificationTopicUseCase? _unsubscribe;
final OnNotification? handleNotification;
Future<void> listenNotification() async {
final notificaitons = await _listenNotification.execute(const NoParam());

View File

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

View File

@ -11,7 +11,7 @@ environment:
dependencies:
build: ^2.3.1
source_gen: ^1.2.7
analyzer: ^5.4.0
analyzer: ^6.2.0
wyatt_component_copy_with_extension:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub

View File

@ -33,8 +33,7 @@ class CrudFirestoreDataSourceImpl<Model extends ObjectModel, Entity>
required Model Function(
DocumentSnapshot<Map<String, dynamic>>,
SnapshotOptions?,
)
fromFirestore,
) fromFirestore,
/// The function that converts a [Model] to a [Map<String, Object?>].
required Map<String, Object?> Function(Model, SetOptions?) toFirestore,

View File

@ -289,7 +289,7 @@ abstract class CrudAdvancedCubit<Model extends ObjectModel>
WhereQueryType.whereIn,
'id',
ids,
)
),
]);
if (result.isOk) {
return CrudListLoaded<Model?>(result.ok ?? []);

View File

@ -353,7 +353,7 @@ abstract class CrudCubit<Model extends ObjectModel> extends CrudBaseCubit {
WhereQueryType.whereIn,
'id',
ids,
)
),
]);
if (result.isOk) {
return CrudListLoaded<Model?>(result.ok ?? []);

View File

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

View File

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

View File

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

View File

@ -46,7 +46,7 @@ abstract class Convert {
map.forEach(
(key, value) => pairs.add([
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('&');

View File

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

View File

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

View File

@ -93,7 +93,7 @@ class I18nFileParser extends Parser<String, String> {
String selectToString(Select token) {
final Map<Object, String> cases = {
for (var e in token.options.map(
for (final e in token.options.map(
(o) => MapEntry(
o.name,
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
# versions available, run `flutter pub outdated`.
dependencies:
http: ^0.13.4
http: ^1.1.0
wyatt_type_utils:
path: "../"

View File

@ -30,7 +30,7 @@ abstract class BottomNavigationBarComponent extends Component
this.items = const <BottomNavigationBarItem>[],
super.key,
});
final int currentIndex;
final void Function(BuildContext, int)? onTap;
final List<BottomNavigationBarItem> items;

View File

@ -27,7 +27,7 @@ class Bars extends DemoPage {
),
),
actions: [
IconButton(onPressed: () {}, icon: const Icon(Icons.menu))
IconButton(onPressed: () {}, icon: const Icon(Icons.menu)),
],
),
const Gap(20),
@ -54,13 +54,13 @@ class Bars extends DemoPage {
),
ListTile(
title: Text('Votre programme'),
)
),
],
actions: [
IconButton(
onPressed: () {},
icon: const Icon(Icons.clear),
)
),
],
),
const Gap(20),
@ -81,7 +81,7 @@ class Bars extends DemoPage {
TextWrapper('ACCUEIL'),
TextWrapper('VOTRE PROGRAMME'),
TextWrapper('LE STUDIO'),
TextWrapper('SAVOIR FAIRE')
TextWrapper('SAVOIR FAIRE'),
],
),
],

View File

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

View File

@ -43,12 +43,12 @@ class PortfolioCards extends StatelessWidget {
'assets/images/mockup_1.png',
alignment: Alignment.topCenter,
fit: BoxFit.cover,
)
),
],
keywords: const [
TextWrapper('UI Design'),
TextWrapper('Developpement'),
TextWrapper('Deploiement')
TextWrapper('Deploiement'),
],
),
const Gap(20),
@ -78,9 +78,9 @@ class PortfolioCards extends StatelessWidget {
'assets/images/mockup_1.png',
alignment: Alignment.topCenter,
fit: BoxFit.cover,
)
),
],
)
),
],
),
const Gap(20),
@ -118,12 +118,12 @@ class PortfolioCards extends StatelessWidget {
'assets/images/mockup_1.png',
alignment: Alignment.topCenter,
fit: BoxFit.cover,
)
),
],
keywords: const [
TextWrapper('UI Design'),
TextWrapper('Developpement'),
TextWrapper('Deploiement')
TextWrapper('Deploiement'),
],
),
const Gap(20),
@ -168,12 +168,12 @@ class PortfolioCards extends StatelessWidget {
'assets/images/mockup_1.png',
alignment: Alignment.topCenter,
fit: BoxFit.cover,
)
),
],
keywords: const [
TextWrapper('UI Design'),
TextWrapper('Developpement'),
TextWrapper('Deploiement')
TextWrapper('Deploiement'),
],
),
],

View File

@ -47,7 +47,7 @@ class SkillCards extends StatelessWidget {
gradientColors:
const MultiColor([Colors.red, Colors.orange]),
),
)
),
],
bulletColors: const MultiColor([Colors.red, Colors.orange]),
title: const TextWrapper('Lorem Ipsum'),
@ -78,7 +78,7 @@ class SkillCards extends StatelessWidget {
gradientColors:
const MultiColor([Colors.blue, Colors.green]),
),
)
),
],
bulletColors: const MultiColor([Colors.blue, Colors.green]),
title: const TextWrapper('Lorem Ipsum'),

View File

@ -15,8 +15,8 @@ dependencies:
flutter_bloc: ^8.1.2
flutter_localizations: { sdk: flutter }
gap: ^2.0.1
google_fonts: ^4.0.3
gap: ^3.0.1
google_fonts: ^5.1.0
wyatt_ui_components:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub

View File

@ -63,7 +63,7 @@ class NavigationItem extends StatelessWidget {
.themeExtension<TopBarThemeExtension>()
?.selectedIndicatorColors,
TopBarThemeExtensionDefault.from(Theme.of(context))
.selectedIndicatorColors
.selectedIndicatorColors,
],
valueValidator: (value) => value?.isGradient,
transform: (value) =>
@ -75,7 +75,7 @@ class NavigationItem extends StatelessWidget {
.themeExtension<TopBarThemeExtension>()
?.selectedIndicatorColors,
TopBarThemeExtensionDefault.from(Theme.of(context))
.selectedIndicatorColors
.selectedIndicatorColors,
],
valueValidator: (value) => value?.isColor,
transform: (value) => value?.color,

View File

@ -177,7 +177,7 @@ class FileSelectionButtonScreen
)
: null,
boxShadow: [
if (style.shadow != null) ...[style.shadow!]
if (style.shadow != null) ...[style.shadow!],
],
borderRadius: style.radius,
),
@ -214,7 +214,7 @@ class FileSelectionButtonScreen
GradientText.fromWrapper(
title!,
gradientColors: style.foregroundColors,
)
),
],
/// Choose color

View File

@ -156,7 +156,7 @@ class FlatButtonScreen extends CubitScreen<ButtonCubit, ButtonState> {
: null,
boxShadow: [
if (style.shadow != null) ...[style.shadow!]
if (style.shadow != null) ...[style.shadow!],
],
borderRadius: style.radius,
),
@ -174,7 +174,7 @@ class FlatButtonScreen extends CubitScreen<ButtonCubit, ButtonState> {
if (prefix != null &&
(prefix is Icon?) &&
((prefix as Icon?)?.color != null)) ...[
prefix!
prefix!,
] else if (style.foregroundColors?.color != null &&
prefix != null) ...[
ColorFiltered(
@ -183,9 +183,9 @@ class FlatButtonScreen extends CubitScreen<ButtonCubit, ButtonState> {
BlendMode.srcIn,
),
child: prefix,
)
),
] else ...[
prefix ?? const SizedBox.shrink()
prefix ?? const SizedBox.shrink(),
],
Gap(style.padding?.vertical ?? 10),
@ -204,13 +204,13 @@ class FlatButtonScreen extends CubitScreen<ButtonCubit, ButtonState> {
label!,
style: style.labelStyle,
gradientColors: style.foregroundColors,
)
),
],
Gap(style.padding?.vertical ?? 10),
if (suffix != null &&
(suffix is Icon?) &&
((suffix as Icon?)?.color != null)) ...[
suffix!
suffix!,
] else if (style.foregroundColors?.colors != null &&
style.foregroundColors!.colors.isNotEmpty &&
suffix != null) ...[
@ -220,7 +220,7 @@ class FlatButtonScreen extends CubitScreen<ButtonCubit, ButtonState> {
BlendMode.srcIn,
),
child: suffix,
)
),
] else if (style.foregroundColors?.color != null &&
suffix != null) ...[
ColorFiltered(
@ -229,9 +229,9 @@ class FlatButtonScreen extends CubitScreen<ButtonCubit, ButtonState> {
BlendMode.srcIn,
),
child: suffix,
)
),
] else ...[
suffix ?? const SizedBox.shrink()
suffix ?? const SizedBox.shrink(),
],
],
),

View File

@ -152,7 +152,7 @@ class SimpleIconButtonScreen extends CubitScreen<ButtonCubit, ButtonState> {
)
: null,
boxShadow: [
if (style.shadow != null) ...[style.shadow!]
if (style.shadow != null) ...[style.shadow!],
],
borderRadius: style.radius,
),

View File

@ -181,7 +181,7 @@ class SymbolButtonScreen
)
: null,
boxShadow: [
if (style.shadow != null) ...[style.shadow!]
if (style.shadow != null) ...[style.shadow!],
],
borderRadius: style.radius,
),

View File

@ -102,7 +102,7 @@ class PricingCardTitles extends StatelessWidget {
],
),
const Gap(_bodyTopSpacing),
]
],
],
RichText(
text: TextSpan(
@ -111,7 +111,7 @@ class PricingCardTitles extends StatelessWidget {
TextSpan(
text: price.text.data,
style: price.text.style,
)
),
],
if (pricing?.hasAsterisk ?? false) ...[
WidgetSpan(
@ -128,7 +128,7 @@ class PricingCardTitles extends StatelessWidget {
TextSpan(
text: period.text.data,
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,
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,
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,
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)
.extension<CardThemeExtension>()
?.backgroundColors,
CardThemeExtensionDefault.from(Theme.of(context)).backgroundColors
CardThemeExtensionDefault.from(Theme.of(context))
.backgroundColors,
],
valueValidator: (multiColor) => multiColor?.isGradient,
transform: (multiColor) =>

View File

@ -12,9 +12,9 @@ dependencies:
dotted_border: ^2.0.0+3
equatable: ^2.0.5
flutter: { sdk: flutter }
flutter_animate: ^3.0.0
flutter_animate: ^4.2.0+1
flutter_bloc: ^8.1.2
gap: ^2.0.1
gap: ^3.0.1
meta: ^1.8.0
wyatt_bloc_helper:
hosted:

View File

@ -32,7 +32,7 @@ dependencies:
wyatt_ui_layout:
path: "../"
go_router: ^5.0.1
go_router: ^10.1.0
wyatt_ui_components:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub

View File

@ -10,7 +10,7 @@ environment:
dependencies:
flutter: { sdk: flutter }
gap: ^2.0.1
gap: ^3.0.1
wyatt_ui_components:
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub