Added a name field to pass server validation

This commit is contained in:
2023-12-27 12:59:14 +03:00
parent 69014e3693
commit 17dc6aba51
6 changed files with 25 additions and 13 deletions

View File

@@ -2,6 +2,7 @@ import 'dart:convert';
import 'package:http/http.dart' as http;
class UserRegistrationSheet {
String name;
String firstName;
String lastName;
String email;
@@ -30,6 +31,7 @@ class UserRegistrationSheet {
String additionalInfo = '';
UserRegistrationSheet({
required this.name,
required this.firstName,
required this.lastName,
required this.email,
@@ -60,6 +62,7 @@ class UserRegistrationSheet {
Map<String, dynamic> toJson() {
return {
'name': name,
'first_name': firstName,
'last_name': lastName,
'email': email,
@@ -88,15 +91,4 @@ class UserRegistrationSheet {
'additional_info': additionalInfo,
};
}
Future<void> sendJson(Uri url) async {
final response = await http.post(
url,
headers: {'Content-Type': 'application/json'},
body: jsonEncode(toJson()),
);
if (response.statusCode != 200) {
throw Exception('Failed to send data');
}
}
}

View File

@@ -1,6 +1,7 @@
final Map<String, String> ru = {
"user_registration": "Регистрация пользователя",
"email": "Элетронная почта",
"username": "Имя пользователя",
"password": "Пароль",
"password_confirmation": "Подтвердите пароль",
"first_name": "Имя",
@@ -61,7 +62,7 @@ final Map<String, String> ru = {
// language_select Screen
"lbl_english": "English",
"finish": "Завершить",
"preferred_language": "Предпочетаемый язык общения?",
"preferred_language": "Предпочитаемый язык общения?",
// Common String
"continue": "Продолжить", "skip": "Пропустить",

View File

@@ -17,6 +17,7 @@ class CredentialsBloc extends Bloc<CredentialsEvent, CredentialsState> {
) async {
emit(state.copyWith(
valueController: TextEditingController(),
nameController: TextEditingController(),
passwordController: TextEditingController(),
passwordConfirmationController: TextEditingController()));
}

View File

@@ -6,6 +6,7 @@ part of 'credentials_bloc.dart';
class CredentialsState extends Equatable {
CredentialsState({
this.valueController,
this.nameController,
this.passwordController,
this.passwordConfirmationController,
this.credentialsModelObj,
@@ -13,6 +14,8 @@ class CredentialsState extends Equatable {
TextEditingController? valueController;
TextEditingController? nameController;
TextEditingController? passwordController;
TextEditingController? passwordConfirmationController;
@@ -22,11 +25,13 @@ class CredentialsState extends Equatable {
@override
List<Object?> get props => [
valueController,
nameController,
passwordController,
passwordConfirmationController,
credentialsModelObj,
];
CredentialsState copyWith({
TextEditingController? nameController,
TextEditingController? valueController,
TextEditingController? passwordController,
TextEditingController? passwordConfirmationController,
@@ -34,6 +39,7 @@ class CredentialsState extends Equatable {
}) {
return CredentialsState(
valueController: valueController ?? this.valueController,
nameController: nameController ?? this.nameController,
passwordController: passwordController ?? this.passwordController,
passwordConfirmationController:
passwordConfirmationController ?? this.passwordConfirmationController,

View File

@@ -1,7 +1,6 @@
import 'bloc/credentials_bloc.dart';
import 'models/credentials_model.dart';
import 'package:eatvio_app/core/app_export.dart';
import 'package:eatvio_app/widgets/app_bar/appbar_leading_image.dart';
import 'package:eatvio_app/widgets/app_bar/appbar_title_image.dart';
import 'package:eatvio_app/widgets/app_bar/custom_app_bar.dart';
import 'package:eatvio_app/widgets/next_step_button.dart';
@@ -64,6 +63,17 @@ class CredentialsScreen extends StatelessWidget {
controller: valueController,
textInputAction: TextInputAction.done);
}),
SizedBox(height: 22.v),
Text("username".tr, style: theme.textTheme.bodyLarge),
SizedBox(height: 3.v),
BlocSelector<CredentialsBloc, CredentialsState,
TextEditingController?>(
selector: (state) => state.nameController,
builder: (context, nameController) {
return CustomTextFormField(
controller: nameController,
textInputAction: TextInputAction.done);
}),
SizedBox(height: 19.v),
Text("password".tr, style: theme.textTheme.bodyLarge),
SizedBox(height: 5.v),
@@ -101,6 +111,7 @@ class CredentialsScreen extends StatelessWidget {
UserRegistrationSheet sheet =
state.credentialsModelObj!.userRegistrationSheet;
sheet.email = state.valueController!.text;
sheet.name = state.nameController!.text;
sheet.password = state.passwordController!.text;
sheet.passwordConfirmation =
state.passwordConfirmationController!.text;

View File

@@ -9,6 +9,7 @@ import 'package:eatvio_app/data/models/selectionPopupModel/selection_popup_model
class LanguageSelectModel extends Equatable {
LanguageSelectModel({this.dropdownItemList = const []});
UserRegistrationSheet userRegistrationSheet = UserRegistrationSheet(
name: '',
firstName: '',
lastName: '',
email: '',