coregen-cli 3.1.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- coregen.py +1585 -0
- coregen_cli-3.1.6.dist-info/METADATA +1211 -0
- coregen_cli-3.1.6.dist-info/RECORD +172 -0
- coregen_cli-3.1.6.dist-info/WHEEL +5 -0
- coregen_cli-3.1.6.dist-info/entry_points.txt +2 -0
- coregen_cli-3.1.6.dist-info/top_level.txt +2 -0
- generators/__init__.py +1 -0
- generators/assets/__init__.py +1 -0
- generators/assets/assets.py +30 -0
- generators/assets/main.py +4 -0
- generators/config/__init__.py +1 -0
- generators/config/analisy_options.py +42 -0
- generators/config/main.py +11 -0
- generators/config/pubspec.py +139 -0
- generators/cursor/__init__.py +3 -0
- generators/cursor/setup.py +87 -0
- generators/helpers/__init__.py +56 -0
- generators/helpers/component.py +1030 -0
- generators/helpers/config.py +255 -0
- generators/helpers/data_source.py +180 -0
- generators/helpers/domain.py +469 -0
- generators/helpers/feature.py +654 -0
- generators/helpers/navigation.py +274 -0
- generators/helpers/page.py +63 -0
- generators/helpers/project.py +33 -0
- generators/helpers/utils.py +338 -0
- generators/helpers/validation.py +364 -0
- generators/initializator.py +68 -0
- generators/main.py +81 -0
- generators/static/assets/logo.png +0 -0
- generators/static/assets/mock/auth_user.json +5 -0
- generators/static/assets/svgs/apple.svg +4 -0
- generators/static/assets/svgs/google.svg +2 -0
- generators/static/cursor/AGENTS.md.jinja +37 -0
- generators/static/cursor/agents/doc-writer.md +20 -0
- generators/static/cursor/agents/epic-orchestrator.md +28 -0
- generators/static/cursor/agents/feature-implementer.md +29 -0
- generators/static/cursor/agents/integration-wiring.md +30 -0
- generators/static/cursor/agents/layer-application.md +21 -0
- generators/static/cursor/agents/layer-guardian.md +21 -0
- generators/static/cursor/agents/layer-infrastructure.md +31 -0
- generators/static/cursor/agents/layer-model.md +24 -0
- generators/static/cursor/agents/layer-presentation.md +33 -0
- generators/static/cursor/docs/architecture/APIS_AND_INTEGRATION.md.jinja +42 -0
- generators/static/cursor/docs/architecture/CARAVAGGIO_COMPONENTS.md.jinja +317 -0
- generators/static/cursor/docs/architecture/DDD_LAYERS.md.jinja +32 -0
- generators/static/cursor/docs/architecture/FILE_TEMPLATES.md.jinja +76 -0
- generators/static/cursor/docs/architecture/MOCK_AND_REMOTE_DATA.md.jinja +87 -0
- generators/static/cursor/docs/architecture/REFERENCE_IMPLEMENTATIONS.md.jinja +48 -0
- generators/static/cursor/docs/architecture/WIDGETS_AND_CARAVAGGIO.md.jinja +76 -0
- generators/static/cursor/docs/epics/README.md +17 -0
- generators/static/cursor/lib/domain/AGENTS.md +23 -0
- generators/static/cursor/lib/features/AGENTS.md +23 -0
- generators/static/cursor/lib/widgets/AGENTS.md +21 -0
- generators/static/cursor/rules/apis-layer.mdc.jinja +21 -0
- generators/static/cursor/rules/application-layer.mdc.jinja +12 -0
- generators/static/cursor/rules/architecture-core.mdc.jinja +43 -0
- generators/static/cursor/rules/dart-conventions.mdc.jinja +14 -0
- generators/static/cursor/rules/domain-layer.mdc.jinja +24 -0
- generators/static/cursor/rules/login-context.mdc.jinja +16 -0
- generators/static/cursor/rules/presentation-layer.mdc.jinja +15 -0
- generators/static/cursor/rules/quality-gate.mdc.jinja +14 -0
- generators/static/cursor/rules/ui-caravaggio.mdc.jinja +22 -0
- generators/static/cursor/skills/caravaggio-ui/SKILL.md +138 -0
- generators/static/cursor/skills/epic-delivery/SKILL.md +74 -0
- generators/static/cursor/skills/epic-delivery/templates/epic-status.md +14 -0
- generators/static/cursor/skills/epic-delivery/templates/epic.md +36 -0
- generators/static/templates/apis/common/constants_template.jinja +48 -0
- generators/static/templates/apis/common/data_source_config_template.jinja +47 -0
- generators/static/templates/apis/core/api_injectable_module_template.jinja +14 -0
- generators/static/templates/apis/interceptors/api_logger_template.jinja +135 -0
- generators/static/templates/apis/interceptors/auth_interceptor_template.jinja +207 -0
- generators/static/templates/auth/application/auth_bloc_template.jinja +36 -0
- generators/static/templates/auth/application/auth_event_template.jinja +7 -0
- generators/static/templates/auth/application/auth_state_template.jinja +8 -0
- generators/static/templates/auth/infrastructure/auth_facade_module_template.jinja +16 -0
- generators/static/templates/auth/infrastructure/auth_facade_template.jinja +288 -0
- generators/static/templates/auth/infrastructure/mock_auth_facade_template.jinja +106 -0
- generators/static/templates/auth/model/auth_failure_template.jinja +11 -0
- generators/static/templates/auth/model/i_auth_facade_template.jinja +24 -0
- generators/static/templates/auth/model/user_template.jinja +34 -0
- generators/static/templates/auth/model/value_objects_template.jinja +54 -0
- generators/static/templates/auth/presentation/login_screen_template.jinja +24 -0
- generators/static/templates/auth/sign_in_form/application/sign_in_form_bloc_template.jinja +139 -0
- generators/static/templates/auth/sign_in_form/application/sign_in_form_event_template.jinja +15 -0
- generators/static/templates/auth/sign_in_form/application/sign_in_form_state_template.jinja +26 -0
- generators/static/templates/auth/sign_in_form/presentation/apple_form_template.jinja +16 -0
- generators/static/templates/auth/sign_in_form/presentation/email_password_form_template_INACTIVE.jinja +94 -0
- generators/static/templates/auth/sign_in_form/presentation/google_form_template.jinja +15 -0
- generators/static/templates/auth/sign_in_form/presentation/sign_in_form_template.jinja +381 -0
- generators/static/templates/component/component_bloc_template.jinja +49 -0
- generators/static/templates/component/component_event_template.jinja +7 -0
- generators/static/templates/component/component_form_bloc_template.jinja +56 -0
- generators/static/templates/component/component_form_event_template.jinja +7 -0
- generators/static/templates/component/component_form_state_template.jinja +18 -0
- generators/static/templates/component/component_form_widget_template.jinja +130 -0
- generators/static/templates/component/component_list_widget_template.jinja +95 -0
- generators/static/templates/component/component_state_template.jinja +9 -0
- generators/static/templates/component/component_widget_template.jinja +113 -0
- generators/static/templates/core/bloc/base_form_bloc_template.jinja +32 -0
- generators/static/templates/core/errors/error_localizer_template.jinja +61 -0
- generators/static/templates/core/infrastructure/base_mapper_template.jinja +21 -0
- generators/static/templates/core/infrastructure/base_repository_mixin_template.jinja +78 -0
- generators/static/templates/core/infrastructure/firebase_injectable_module_template.jinja +11 -0
- generators/static/templates/core/infrastructure/firestore_helpers_template.jinja +22 -0
- generators/static/templates/core/infrastructure/repository_error_handler_template.jinja +44 -0
- generators/static/templates/core/model/common_interfaces_template.jinja +3 -0
- generators/static/templates/core/model/entity_template.jinja +5 -0
- generators/static/templates/core/model/errors_template.jinja +15 -0
- generators/static/templates/core/model/failures_template.jinja +97 -0
- generators/static/templates/core/model/value_objects_template.jinja +135 -0
- generators/static/templates/core/model/value_validators_template.jinja +105 -0
- generators/static/templates/core/presentation/app_drawer_template.jinja +52 -0
- generators/static/templates/core/presentation/app_widget_template.jinja +41 -0
- generators/static/templates/core/presentation/bottom_nav_bar_template.jinja +32 -0
- generators/static/templates/domain/domain_mapper_template.jinja +39 -0
- generators/static/templates/domain/domain_remote_service_template.jinja +46 -0
- generators/static/templates/domain/domain_repository_template.jinja +90 -0
- generators/static/templates/domain/domain_service_module_template.jinja +23 -0
- generators/static/templates/domain/enum_template.jinja +3 -0
- generators/static/templates/domain/i_domain_service_template.jinja +18 -0
- generators/static/templates/domain/mock_domain_service_template.jinja +73 -0
- generators/static/templates/feature/feature_bloc_template.jinja +104 -0
- generators/static/templates/feature/feature_dto_template.jinja +26 -0
- generators/static/templates/feature/feature_entity_template.jinja +23 -0
- generators/static/templates/feature/feature_event_template.jinja +20 -0
- generators/static/templates/feature/feature_extensions_template.jinja +25 -0
- generators/static/templates/feature/feature_failure_template.jinja +11 -0
- generators/static/templates/feature/feature_page_template.jinja +113 -0
- generators/static/templates/feature/feature_repository_template.jinja +112 -0
- generators/static/templates/feature/feature_state_template.jinja +20 -0
- generators/static/templates/feature/i_feature_repository_template.jinja +21 -0
- generators/static/templates/feature/value_object_field_template.jinja +0 -0
- generators/static/templates/feature/value_object_template.jinja +0 -0
- generators/static/templates/feature/value_validators_template.jinja +57 -0
- generators/static/templates/home/home_screen_template.jinja +68 -0
- generators/static/templates/home/presentation/home_screen_template.jinja +52 -0
- generators/static/templates/home/screen_template.jinja +12 -0
- generators/static/templates/injection_template.jinja +8 -0
- generators/static/templates/logging/analytics_logging_template.jinja +42 -0
- generators/static/templates/logging/console_template.jinja +50 -0
- generators/static/templates/logging/logger_injectable_module_template.jinja +24 -0
- generators/static/templates/logging/logger_template.jinja +118 -0
- generators/static/templates/main_template.jinja +43 -0
- generators/static/templates/page_template.jinja +29 -0
- generators/static/templates/router_template.jinja +26 -0
- generators/static/templates/splash/presentation/splash_screen_auth_template.jinja +97 -0
- generators/static/templates/splash/presentation/splash_screen_template.jinja +51 -0
- generators/static/templates/storage/storage_repository_template.jinja +80 -0
- generators/static/templates/user_profile/infrastructure/user_profile_dto_template.jinja +27 -0
- generators/static/templates/user_profile/infrastructure/user_profile_mapper_template.jinja +43 -0
- generators/static/templates/user_profile/infrastructure/user_profile_repository_template.jinja +82 -0
- generators/static/templates/user_profile/infrastructure/user_profile_service_template.jinja +27 -0
- generators/static/templates/user_profile/model/i_user_profile_repository_template.jinja +34 -0
- generators/static/templates/user_profile/model/user_profile_failure_template.jinja +11 -0
- generators/static/templates/user_profile/model/user_profile_template.jinja +31 -0
- generators/static/templates/widgets/common/custom_scaffold_template.jinja +52 -0
- generators/static/templates/widgets/common/error_widget_template.jinja +22 -0
- generators/static/templates/widgets/common/loading_widget_template.jinja +14 -0
- generators/static/templates/widgets/common/unknown_state_widget_template.jinja +23 -0
- generators/templates/__init__.py +1 -0
- generators/templates/_core/core_generator.py +121 -0
- generators/templates/apis/apis_generator.py +50 -0
- generators/templates/auth/auth_generator.py +40 -0
- generators/templates/auth/sign_in_form_generator.py +22 -0
- generators/templates/copier.py +51 -0
- generators/templates/home/home_generator.py +26 -0
- generators/templates/lib/lib_generator.py +40 -0
- generators/templates/logging/logging_generator.py +28 -0
- generators/templates/main.py +75 -0
- generators/templates/splash/splash_generator.py +20 -0
- generators/templates/storage/storage_generator.py +5 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import 'dart:async';
|
|
2
|
+
|
|
3
|
+
import 'package:bloc/bloc.dart';
|
|
4
|
+
import 'package:dartz/dartz.dart';
|
|
5
|
+
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
6
|
+
import 'package:[[project_name]]/domain/auth/model/auth_failure.dart';
|
|
7
|
+
import 'package:flutter/foundation.dart';
|
|
8
|
+
import 'package:[[project_name]]/domain/auth/model/value_objects.dart';
|
|
9
|
+
import 'package:[[project_name]]/domain/auth/model/i_auth_facade.dart';
|
|
10
|
+
|
|
11
|
+
part 'sign_in_form_event.dart';
|
|
12
|
+
part 'sign_in_form_state.dart';
|
|
13
|
+
|
|
14
|
+
part 'sign_in_form_bloc.freezed.dart';
|
|
15
|
+
|
|
16
|
+
class SignInFormBloc extends Bloc<SignInFormEvent, SignInFormState> {
|
|
17
|
+
final IAuthFacade _authFacade;
|
|
18
|
+
|
|
19
|
+
SignInFormBloc(this._authFacade) : super(SignInFormState.initial()) {
|
|
20
|
+
on<EmailChanged>(_onEmailChanged);
|
|
21
|
+
on<PasswordChanged>(_onPasswordChanged);
|
|
22
|
+
on<ConfirmPasswordChanged>(_onConfirmPasswordChanged);
|
|
23
|
+
on<ToggleSignInAction>(_onToggleSignInAction);
|
|
24
|
+
on<RegisterWithEmailAndPasswordPressed>(_onRegisterWithEmailAndPasswordPressed);
|
|
25
|
+
on<SignInWithEmailAndPasswordPressed>(_onSignInWithEmailAndPasswordPressed);
|
|
26
|
+
on<SignInWithGooglePressed>(_onSignInWithGooglePressed);
|
|
27
|
+
on<SignInWithApplePressed>(_onSignInWithApplePressed);
|
|
28
|
+
on<RegisterWithGooglePressed>(_onRegisterWithGooglePressed);
|
|
29
|
+
on<RegisterWithApplePressed>(_onRegisterWithApplePressed);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
void _onEmailChanged(EmailChanged event, Emitter<SignInFormState> emit) {
|
|
33
|
+
emit(state.copyWith(
|
|
34
|
+
emailAddress: EmailAddress(event.emailStr),
|
|
35
|
+
authFailureOrSuccessOption: none(),
|
|
36
|
+
));
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
void _onPasswordChanged(PasswordChanged event, Emitter<SignInFormState> emit) {
|
|
40
|
+
emit(state.copyWith(
|
|
41
|
+
password: Password(event.passwordStr),
|
|
42
|
+
confirmPassword: state.signInAction == SignInAction.signUp ? ConfirmPassword(event.passwordStr, state.confirmPassword.rawValue) : state.confirmPassword,
|
|
43
|
+
authFailureOrSuccessOption: none(),
|
|
44
|
+
));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
void _onConfirmPasswordChanged(ConfirmPasswordChanged event, Emitter<SignInFormState> emit) {
|
|
48
|
+
emit(state.copyWith(
|
|
49
|
+
confirmPassword: ConfirmPassword(state.password.rawValue, event.confirmPasswordStr),
|
|
50
|
+
authFailureOrSuccessOption: none(),
|
|
51
|
+
));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
void _onToggleSignInAction(ToggleSignInAction event, Emitter<SignInFormState> emit) {
|
|
55
|
+
final SignInAction toggledAction = state.signInAction == SignInAction.signIn ? SignInAction.signUp : SignInAction.signIn;
|
|
56
|
+
|
|
57
|
+
emit(state.copyWith(
|
|
58
|
+
signInAction: toggledAction,
|
|
59
|
+
confirmPassword: toggledAction == SignInAction.signUp ? ConfirmPassword(state.password.rawValue, state.confirmPassword.rawValue) : state.confirmPassword,
|
|
60
|
+
authFailureOrSuccessOption: none(),
|
|
61
|
+
));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
Future<void> _onRegisterWithEmailAndPasswordPressed(RegisterWithEmailAndPasswordPressed event, Emitter<SignInFormState> emit) async {
|
|
65
|
+
await _performActionOnAuthFacadeWithEmailAndPassword(_authFacade.registerWithEmailAndPassword, emit);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
Future<void> _onSignInWithEmailAndPasswordPressed(SignInWithEmailAndPasswordPressed event, Emitter<SignInFormState> emit) async {
|
|
69
|
+
await _performActionOnAuthFacadeWithEmailAndPassword(_authFacade.signInWithEmailAndPassword, emit);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
Future<void> _onSignInWithGooglePressed(SignInWithGooglePressed event, Emitter<SignInFormState> emit) async {
|
|
73
|
+
await _performActionOnAuthFacade(_authFacade.signInWithGoogle, emit);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
Future<void> _onSignInWithApplePressed(SignInWithApplePressed event, Emitter<SignInFormState> emit) async {
|
|
77
|
+
await _performActionOnAuthFacade(_authFacade.signInWithApple, emit);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
Future<void> _onRegisterWithGooglePressed(RegisterWithGooglePressed event, Emitter<SignInFormState> emit) async {
|
|
81
|
+
await _performActionOnAuthFacade(_authFacade.registerWithGoogle, emit);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
Future<void> _onRegisterWithApplePressed(RegisterWithApplePressed event, Emitter<SignInFormState> emit) async {
|
|
85
|
+
await _performActionOnAuthFacade(_authFacade.registerWithApple, emit);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
Future<void> _performActionOnAuthFacade(
|
|
89
|
+
Future<Either<AuthFailure, Unit>> Function() forwardedCall,
|
|
90
|
+
Emitter<SignInFormState> emit,
|
|
91
|
+
) async {
|
|
92
|
+
Either<AuthFailure, Unit>? failureOrSuccess;
|
|
93
|
+
|
|
94
|
+
emit(state.copyWith(
|
|
95
|
+
isSubmitting: true,
|
|
96
|
+
authFailureOrSuccessOption: none(),
|
|
97
|
+
));
|
|
98
|
+
|
|
99
|
+
failureOrSuccess = await forwardedCall();
|
|
100
|
+
|
|
101
|
+
emit(state.copyWith(
|
|
102
|
+
isSubmitting: false,
|
|
103
|
+
showErrorMessages: true,
|
|
104
|
+
authFailureOrSuccessOption: optionOf(failureOrSuccess),
|
|
105
|
+
));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
Future<void> _performActionOnAuthFacadeWithEmailAndPassword(
|
|
109
|
+
Future<Either<AuthFailure, Unit>> Function({
|
|
110
|
+
required EmailAddress emailAddress,
|
|
111
|
+
required Password password,
|
|
112
|
+
}) forwardedCall,
|
|
113
|
+
Emitter<SignInFormState> emit,
|
|
114
|
+
) async {
|
|
115
|
+
Either<AuthFailure, Unit>? failureOrSuccess;
|
|
116
|
+
|
|
117
|
+
final bool isEmailValid = state.emailAddress.isValid();
|
|
118
|
+
final bool isPasswordValid = state.password.isValid();
|
|
119
|
+
|
|
120
|
+
final bool isConfirmPasswordValid = state.signInAction == SignInAction.signUp ? state.confirmPassword.isValid() : true;
|
|
121
|
+
|
|
122
|
+
if (isEmailValid && isPasswordValid && isConfirmPasswordValid) {
|
|
123
|
+
emit(state.copyWith(
|
|
124
|
+
isSubmitting: true,
|
|
125
|
+
authFailureOrSuccessOption: none(),
|
|
126
|
+
));
|
|
127
|
+
|
|
128
|
+
failureOrSuccess = await forwardedCall(
|
|
129
|
+
emailAddress: state.emailAddress,
|
|
130
|
+
password: state.password,
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
emit(state.copyWith(
|
|
134
|
+
isSubmitting: false,
|
|
135
|
+
showErrorMessages: true,
|
|
136
|
+
authFailureOrSuccessOption: optionOf(failureOrSuccess),
|
|
137
|
+
));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
part of 'sign_in_form_bloc.dart';
|
|
2
|
+
|
|
3
|
+
@freezed
|
|
4
|
+
abstract class SignInFormEvent with _$SignInFormEvent {
|
|
5
|
+
const factory SignInFormEvent.emailChanged(String emailStr) = EmailChanged;
|
|
6
|
+
const factory SignInFormEvent.passwordChanged(String passwordStr) = PasswordChanged;
|
|
7
|
+
const factory SignInFormEvent.confirmPasswordChanged(String confirmPasswordStr) = ConfirmPasswordChanged;
|
|
8
|
+
const factory SignInFormEvent.toggleSignInAction() = ToggleSignInAction;
|
|
9
|
+
const factory SignInFormEvent.registerWithEmailAndPasswordPressed() = RegisterWithEmailAndPasswordPressed;
|
|
10
|
+
const factory SignInFormEvent.signInWithEmailAndPasswordPressed() = SignInWithEmailAndPasswordPressed;
|
|
11
|
+
const factory SignInFormEvent.signInWithGooglePressed() = SignInWithGooglePressed;
|
|
12
|
+
const factory SignInFormEvent.signInWithApplePressed() = SignInWithApplePressed;
|
|
13
|
+
const factory SignInFormEvent.registerWithGooglePressed() = RegisterWithGooglePressed;
|
|
14
|
+
const factory SignInFormEvent.registerWithApplePressed() = RegisterWithApplePressed;
|
|
15
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
part of 'sign_in_form_bloc.dart';
|
|
2
|
+
|
|
3
|
+
enum SignInAction { signIn, signUp }
|
|
4
|
+
|
|
5
|
+
@freezed
|
|
6
|
+
abstract class SignInFormState with _$SignInFormState {
|
|
7
|
+
const factory SignInFormState({
|
|
8
|
+
required EmailAddress emailAddress,
|
|
9
|
+
required Password password,
|
|
10
|
+
required ConfirmPassword confirmPassword,
|
|
11
|
+
required SignInAction signInAction,
|
|
12
|
+
required bool showErrorMessages,
|
|
13
|
+
required bool isSubmitting,
|
|
14
|
+
required Option<Either<AuthFailure, Unit>> authFailureOrSuccessOption,
|
|
15
|
+
}) = _SignInFormState;
|
|
16
|
+
|
|
17
|
+
factory SignInFormState.initial() => SignInFormState(
|
|
18
|
+
emailAddress: kDebugMode ? EmailAddress('email@example.com') : EmailAddress(''),
|
|
19
|
+
password: kDebugMode ? Password('password') : Password(''),
|
|
20
|
+
confirmPassword: kDebugMode ? ConfirmPassword('password', 'password') : ConfirmPassword('', ''),
|
|
21
|
+
signInAction: SignInAction.signIn,
|
|
22
|
+
showErrorMessages: false,
|
|
23
|
+
isSubmitting: false,
|
|
24
|
+
authFailureOrSuccessOption: none(),
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const SizedBox(height: 8),
|
|
2
|
+
CButton.elevated(
|
|
3
|
+
onPressed: () => context.read<SignInFormBloc>().add(const SignInFormEvent.signInWithApplePressed()),
|
|
4
|
+
color: Colors.black,
|
|
5
|
+
radius: AppRadius.s,
|
|
6
|
+
suffixIcon: SvgPicture.asset(
|
|
7
|
+
'assets/svgs/apple.svg',
|
|
8
|
+
semanticsLabel: 'Apple logo',
|
|
9
|
+
color: Colors.white,
|
|
10
|
+
width: 24,
|
|
11
|
+
height: 24,
|
|
12
|
+
),
|
|
13
|
+
child: CText.label(
|
|
14
|
+
'Continue with Apple',
|
|
15
|
+
).white.bold,
|
|
16
|
+
),
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// const SizedBox(height: 8),
|
|
2
|
+
// CTextField.bordered(
|
|
3
|
+
// decoration: const CFieldDecoration(
|
|
4
|
+
// prefixIcon: Icon(Icons.email),
|
|
5
|
+
// labelText: __STRING_0__,
|
|
6
|
+
// ),
|
|
7
|
+
// autocorrect: false,
|
|
8
|
+
// onChanged: (value) {
|
|
9
|
+
// context.read<SignInFormBloc>().add(SignInFormEvent.emailChanged(value));
|
|
10
|
+
// },
|
|
11
|
+
// validator: (_) {
|
|
12
|
+
// return context.read<SignInFormBloc>().state.emailAddress.value.fold(
|
|
13
|
+
// (f) => f.maybeMap(
|
|
14
|
+
// invalidEmail: (_) => __STRING_1__,
|
|
15
|
+
// orElse: () => null,
|
|
16
|
+
// ),
|
|
17
|
+
// (_) => null,
|
|
18
|
+
// );
|
|
19
|
+
// },
|
|
20
|
+
// ),
|
|
21
|
+
// const SizedBox(height: 8),
|
|
22
|
+
// CTextField.bordered(
|
|
23
|
+
// // controller: passwordController,
|
|
24
|
+
// decoration: const CFieldDecoration(
|
|
25
|
+
// prefixIcon: Icon(Icons.lock),
|
|
26
|
+
// labelText: __STRING_2__,
|
|
27
|
+
// ),
|
|
28
|
+
// obscureText: true,
|
|
29
|
+
// autocorrect: false,
|
|
30
|
+
// onChanged: (value) {
|
|
31
|
+
// context.read<SignInFormBloc>().add(SignInFormEvent.passwordChanged(value));
|
|
32
|
+
// },
|
|
33
|
+
// validator: (_) {
|
|
34
|
+
// return context.read<SignInFormBloc>().state.password.value.fold(
|
|
35
|
+
// (f) => f.maybeMap(
|
|
36
|
+
// shortPassword: (_) => __STRING_3__,
|
|
37
|
+
// orElse: () => null,
|
|
38
|
+
// ),
|
|
39
|
+
// (_) => null,
|
|
40
|
+
// );
|
|
41
|
+
// },
|
|
42
|
+
// ),
|
|
43
|
+
// if (state.signInAction == SignInAction.signUp) ...[
|
|
44
|
+
// const SizedBox(height: 8),
|
|
45
|
+
// CTextField.bordered(
|
|
46
|
+
// decoration: const CFieldDecoration(
|
|
47
|
+
// prefixIcon: Icon(Icons.person),
|
|
48
|
+
// labelText: __STRING_4__,
|
|
49
|
+
// ),
|
|
50
|
+
// obscureText: true,
|
|
51
|
+
// autocorrect: false,
|
|
52
|
+
// onChanged: (value) {
|
|
53
|
+
// context.read<SignInFormBloc>().add(SignInFormEvent.confirmPasswordChanged(value));
|
|
54
|
+
// },
|
|
55
|
+
// validator: (value) {
|
|
56
|
+
// return context.read<SignInFormBloc>().state.confirmPassword.value.fold(
|
|
57
|
+
// (f) => f.maybeMap(
|
|
58
|
+
// passwordsDoNotMatch: (_) => __STRING_5__,
|
|
59
|
+
// orElse: () => null,
|
|
60
|
+
// ),
|
|
61
|
+
// (_) => null,
|
|
62
|
+
// );
|
|
63
|
+
// },
|
|
64
|
+
// ),
|
|
65
|
+
// ],
|
|
66
|
+
// const SizedBox(height: 8),
|
|
67
|
+
// CButton.elevated(
|
|
68
|
+
// radius: AppRadius.s,
|
|
69
|
+
// onPressed: () {
|
|
70
|
+
// if (state.signInAction == SignInAction.signIn) {
|
|
71
|
+
// context.read<SignInFormBloc>().add(const SignInFormEvent.signInWithEmailAndPasswordPressed());
|
|
72
|
+
// } else {
|
|
73
|
+
// context.read<SignInFormBloc>().add(const SignInFormEvent.registerWithEmailAndPasswordPressed());
|
|
74
|
+
// }
|
|
75
|
+
// },
|
|
76
|
+
// child: state.signInAction == SignInAction.signIn ? CText.label(__STRING_6__) : CText.label(__STRING_7__),
|
|
77
|
+
// ),
|
|
78
|
+
// const SizedBox(height: 16),
|
|
79
|
+
// Row(
|
|
80
|
+
// mainAxisAlignment: MainAxisAlignment.center,
|
|
81
|
+
// children: [
|
|
82
|
+
// CText.label(
|
|
83
|
+
// state.signInAction == SignInAction.signIn ? __STRING_8__ : __STRING_9__,
|
|
84
|
+
// ),
|
|
85
|
+
// GestureDetector(
|
|
86
|
+
// onTap: () {
|
|
87
|
+
// context.read<SignInFormBloc>().add(const SignInFormEvent.toggleSignInAction());
|
|
88
|
+
// },
|
|
89
|
+
// child: CText.label(
|
|
90
|
+
// state.signInAction == SignInAction.signIn ? __STRING_10__ : __STRING_11__,
|
|
91
|
+
// ).bold.withColor(Colors.blue),
|
|
92
|
+
// ),
|
|
93
|
+
// ],
|
|
94
|
+
// ),
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const SizedBox(height: 16),
|
|
2
|
+
CButton.outlined(
|
|
3
|
+
onPressed: () => context.read<SignInFormBloc>().add(const SignInFormEvent.signInWithGooglePressed()),
|
|
4
|
+
radius: AppRadius.s,
|
|
5
|
+
color: Colors.grey,
|
|
6
|
+
suffixIcon: SvgPicture.asset(
|
|
7
|
+
'assets/svgs/google.svg',
|
|
8
|
+
semanticsLabel: 'Google logo',
|
|
9
|
+
width: 24,
|
|
10
|
+
height: 24,
|
|
11
|
+
),
|
|
12
|
+
child: CText.label(
|
|
13
|
+
'Continue with Google',
|
|
14
|
+
).bold,
|
|
15
|
+
),
|