Passed registration sheet between language_select and credentials

This commit is contained in:
2023-12-21 16:50:47 +03:00
parent 05887cb39b
commit 3faae97c91
6 changed files with 43 additions and 62 deletions

View File

@@ -16,8 +16,8 @@ class CredentialsBloc extends Bloc<CredentialsEvent, CredentialsState> {
Emitter<CredentialsState> emit,
) async {
emit(state.copyWith(
valueController: TextEditingController(),
valueController1: TextEditingController(),
valueController2: TextEditingController()));
emailController: TextEditingController(),
passwordController: TextEditingController(),
passwordConfirmationController: TextEditingController()));
}
}

View File

@@ -5,37 +5,38 @@ part of 'credentials_bloc.dart';
/// Represents the state of Credentials in the application.
class CredentialsState extends Equatable {
CredentialsState({
this.valueController,
this.valueController1,
this.valueController2,
this.emailController,
this.passwordController,
this.passwordConfirmationController,
this.credentialsModelObj,
});
TextEditingController? valueController;
TextEditingController? emailController;
TextEditingController? valueController1;
TextEditingController? passwordController;
TextEditingController? valueController2;
TextEditingController? passwordConfirmationController;
CredentialsModel? credentialsModelObj;
@override
List<Object?> get props => [
valueController,
valueController1,
valueController2,
emailController,
passwordController,
passwordConfirmationController,
credentialsModelObj,
];
CredentialsState copyWith({
TextEditingController? valueController,
TextEditingController? valueController1,
TextEditingController? valueController2,
TextEditingController? emailController,
TextEditingController? passwordController,
TextEditingController? passwordConfirmationController,
CredentialsModel? credentialsModelObj,
}) {
return CredentialsState(
valueController: valueController ?? this.valueController,
valueController1: valueController1 ?? this.valueController1,
valueController2: valueController2 ?? this.valueController2,
emailController: emailController ?? this.emailController,
passwordController: passwordController ?? this.passwordController,
passwordConfirmationController:
passwordConfirmationController ?? this.passwordConfirmationController,
credentialsModelObj: credentialsModelObj ?? this.credentialsModelObj,
);
}

View File

@@ -59,10 +59,10 @@ class _CredentialsScreenState extends State<CredentialsScreen> {
SizedBox(height: 3.v),
BlocSelector<CredentialsBloc, CredentialsState,
TextEditingController?>(
selector: (state) => state.valueController1,
builder: (context, valueController1) {
selector: (state) => state.passwordController,
builder: (context, passwordController) {
return CustomTextFormField(
controller: valueController1,
controller: passwordController,
textInputAction: TextInputAction.done);
}),
SizedBox(height: 19.v),
@@ -70,11 +70,11 @@ class _CredentialsScreenState extends State<CredentialsScreen> {
SizedBox(height: 5.v),
BlocSelector<CredentialsBloc, CredentialsState,
TextEditingController?>(
selector: (state) => state.valueController2,
builder: (context, valueController2) {
selector: (state) => state.passwordConfirmationController,
builder: (context, passwordConfirmationController) {
return CustomTextFormField(
obscureText: true,
controller: valueController2,
controller: passwordConfirmationController,
);
}),
SizedBox(height: 21.v),
@@ -83,11 +83,11 @@ class _CredentialsScreenState extends State<CredentialsScreen> {
SizedBox(height: 3.v),
BlocSelector<CredentialsBloc, CredentialsState,
TextEditingController?>(
selector: (state) => state.valueController,
builder: (context, valueController3) {
selector: (state) => state.emailController,
builder: (context, emailController3) {
return CustomTextFormField(
obscureText: true,
controller: valueController3,
controller: emailController3,
textInputAction: TextInputAction.done);
}),
Spacer(),

View File

@@ -6,12 +6,17 @@ import 'package:eatvio_app/data/models/userRegistrationModel/user_registration_m
/// This class defines the variables used in the [credentials_screen],
/// and is typically used to hold data that is passed between different parts of the application.
class CredentialsModel extends Equatable {
CredentialsModel() {}
UserRegistrationSheet userRegistrationSheet;
CredentialsModel copyWith() {
return CredentialsModel();
CredentialsModel({required this.userRegistrationSheet});
CredentialsModel copyWith({UserRegistrationSheet? userRegistrationSheet}) {
return CredentialsModel(
userRegistrationSheet:
userRegistrationSheet ?? this.userRegistrationSheet,
);
}
@override
List<Object?> get props => [];
List<Object?> get props => [userRegistrationSheet];
}

View File

@@ -3,6 +3,7 @@ import 'models/language_select_model.dart';
import 'package:eatvio_app/core/app_export.dart';
import 'package:eatvio_app/widgets/custom_drop_down.dart';
import 'package:eatvio_app/widgets/custom_outlined_button.dart';
import 'package:eatvio_app/presentation/credentials_screen/models/credentials_model.dart';
import 'package:flutter/material.dart';
class LanguageSelectScreen extends StatelessWidget {
@@ -92,9 +93,11 @@ class LanguageSelectScreen extends StatelessWidget {
/// Navigates to the genderScreen when the action is triggered.
navigteToCredentials(BuildContext context) {
LanguageSelectModel languageSelectModel = LanguageSelectModel();
CredentialsModel credentialsModel = CredentialsModel(
userRegistrationSheet: languageSelectModel.userRegistrationSheet);
NavigatorService.pushNamed(
AppRoutes.credentialsScreen,
arguments: languageSelectModel.userRegistrationSheet,
arguments: credentialsModel,
);
}
}

View File

@@ -1,43 +1,15 @@
// ignore_for_file: must_be_immutable
import 'package:equatable/equatable.dart';
import 'package:eatvio_app/data/models/userRegistrationModel/user_registration_model.dart';
import 'package:eatvio_app/data/models/selectionPopupModel/selection_popup_model.dart';
import '../../userRegistrationSheet.dart';
/// This class defines the variables used in the [language_select_screen],
/// and is typically used to hold data that is passed between different parts of the application.
class LanguageSelectModel extends Equatable {
LanguageSelectModel({this.dropdownItemList = const []}) {}
UserRegistrationSheet userRegistrationSheet = UserRegistrationSheet(
firstName: '',
lastName: '',
email: '',
password: '',
passwordConfirmation: '',
termsAccepted: false,
birthdate: DateTime.now(),
gender: '',
country: '',
city: '',
lang: '',
weight: 0,
height: 0,
chestCircumference: 0,
waistCircumference: 0,
hipCircumference: 0,
bloodPressureUp: 0,
bloodPressureDown: 0,
hasHypo: false,
hasHyper: false,
aboutAllergy: '',
aboutTakingPils: '',
aboutSportHobbies: '',
favoriteFoods: '',
unfavoriteFoods: '',
additionalInfo: '',
);
List<SelectionPopupModel> dropdownItemList;
List<SelectionPopupModel> dropdownItemList;
LanguageSelectModel copyWith({List<SelectionPopupModel>? dropdownItemList}) {
return LanguageSelectModel(
dropdownItemList: dropdownItemList ?? this.dropdownItemList,