forked from eatvio/eatvio_app
refactor: add intl localization
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import 'package:eatvio_app/features/registration/models/user_registration_model.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/bloc/registration_cubit/registration_cubit.dart';
|
||||
import 'package:eatvio_app/localization/app_localization.dart';
|
||||
import 'package:eatvio_app/generated/l10n.dart';
|
||||
import 'package:eatvio_app/widgets/custom_text_form_field.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
@@ -27,12 +27,13 @@ class _AllergiesScreenState extends State<AllergiesScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = S.of(context);
|
||||
return SingleChildScrollView(
|
||||
padding: EdgeInsets.only(bottom: 80, left: 16, right: 16, top: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("allergies_presence".tr),
|
||||
Text(s.allergies_presence),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
controller: enterInformationController,
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:eatvio_app/core/utils/image_constant.dart';
|
||||
import 'package:eatvio_app/data/models/selectionPopupModel/selection_popup_model.dart';
|
||||
import 'package:eatvio_app/features/registration/models/user_registration_model.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/bloc/registration_cubit/registration_cubit.dart';
|
||||
import 'package:eatvio_app/localization/app_localization.dart';
|
||||
import 'package:eatvio_app/generated/l10n.dart';
|
||||
import 'package:eatvio_app/widgets/custom_drop_down.dart';
|
||||
import 'package:eatvio_app/widgets/custom_image_view.dart';
|
||||
import 'package:eatvio_app/widgets/custom_text_form_field.dart';
|
||||
@@ -53,38 +53,39 @@ class _BloodPressureScreenState extends State<BloodPressureScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = S.of(context);
|
||||
return SingleChildScrollView(
|
||||
padding: EdgeInsets.only(bottom: 80, left: 16, right: 16, top: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("up_pressure".tr),
|
||||
Text(s.up_pressure),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
inputFormatters: [digitsOnly],
|
||||
controller: upPressureController,
|
||||
autofocus: true,
|
||||
focusNode: upFocusNode,
|
||||
hintText: "90".tr,
|
||||
hintText: "90",
|
||||
onChanged: (newValue) {
|
||||
final registrationCubit = context.read<RegistrationCubit>();
|
||||
registrationCubit.updateSheet(registrationCubit.state.sheet.copyWith(bloodPressureUp: int.parse(newValue)));
|
||||
},
|
||||
),
|
||||
SizedBox(height: 16),
|
||||
Text("down_pressure".tr),
|
||||
Text(s.down_pressure),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
inputFormatters: [digitsOnly],
|
||||
controller: downPressureController,
|
||||
hintText: "90".tr,
|
||||
hintText: '90',
|
||||
onChanged: (newValue) {
|
||||
final registrationCubit = context.read<RegistrationCubit>();
|
||||
registrationCubit.updateSheet(registrationCubit.state.sheet.copyWith(bloodPressureDown: int.parse(newValue)));
|
||||
},
|
||||
),
|
||||
SizedBox(height: 16),
|
||||
Text("do_you_have_hypotension_tendency".tr),
|
||||
Text(s.do_you_have_hypotension_tendency),
|
||||
SizedBox(height: 4),
|
||||
CustomDropDown(
|
||||
icon: Container(
|
||||
@@ -98,7 +99,7 @@ class _BloodPressureScreenState extends State<BloodPressureScreen> {
|
||||
width: 16,
|
||||
),
|
||||
),
|
||||
hintText: "Не выбрано".tr,
|
||||
hintText: "Не выбрано",
|
||||
items: selectionPopupList,
|
||||
value: selectedPopupHypo,
|
||||
onChanged: (newPopup) {
|
||||
@@ -110,7 +111,7 @@ class _BloodPressureScreenState extends State<BloodPressureScreen> {
|
||||
},
|
||||
),
|
||||
SizedBox(height: 16),
|
||||
Text("do_you_have_hypertension_tendency".tr),
|
||||
Text(s.do_you_have_hypertension_tendency),
|
||||
SizedBox(height: 4),
|
||||
CustomDropDown(
|
||||
icon: Container(
|
||||
@@ -124,7 +125,7 @@ class _BloodPressureScreenState extends State<BloodPressureScreen> {
|
||||
width: 16,
|
||||
),
|
||||
),
|
||||
hintText: "Не выбрано".tr,
|
||||
hintText: "Не выбрано",
|
||||
items: selectionPopupList,
|
||||
value: selectedPopupHyper,
|
||||
onChanged: (newPopup) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:eatvio_app/features/registration/models/user_registration_model.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/bloc/registration_cubit/registration_cubit.dart';
|
||||
import 'package:eatvio_app/localization/app_localization.dart';
|
||||
import 'package:eatvio_app/generated/l10n.dart';
|
||||
import 'package:eatvio_app/widgets/custom_text_form_field.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
@@ -33,43 +33,44 @@ class _BodyCircumferencesScreenState extends State<BodyCircumferencesScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = S.of(context);
|
||||
return SingleChildScrollView(
|
||||
padding: EdgeInsets.only(bottom: 80, left: 16, right: 16, top: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("chest_circumference".tr),
|
||||
Text(s.chest_circumference),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
inputFormatters: [digitsOnly],
|
||||
autofocus: true,
|
||||
focusNode: chestFocus,
|
||||
controller: chestCircumferenceController,
|
||||
hintText: "90".tr,
|
||||
hintText: '90',
|
||||
onChanged: (value) {
|
||||
final registrationCubit = context.read<RegistrationCubit>();
|
||||
registrationCubit.updateSheet(registrationCubit.state.sheet.copyWith(chestCircumference: int.parse(value)));
|
||||
},
|
||||
),
|
||||
SizedBox(height: 16),
|
||||
Text("waist_circumference".tr),
|
||||
Text(s.waist_circumference),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
inputFormatters: [digitsOnly],
|
||||
controller: waistCircumferenceController,
|
||||
hintText: "60".tr,
|
||||
hintText: "60",
|
||||
onChanged: (value) {
|
||||
final registrationCubit = context.read<RegistrationCubit>();
|
||||
registrationCubit.updateSheet(registrationCubit.state.sheet.copyWith(waistCircumference: int.parse(value)));
|
||||
},
|
||||
),
|
||||
SizedBox(height: 16),
|
||||
Text("hip_circumference".tr),
|
||||
Text(s.hip_circumference),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
inputFormatters: [digitsOnly],
|
||||
controller: hipCircumferenceController,
|
||||
hintText: "90".tr,
|
||||
hintText: '90',
|
||||
textInputAction: TextInputAction.done,
|
||||
onChanged: (value) {
|
||||
final registrationCubit = context.read<RegistrationCubit>();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:eatvio_app/features/registration/models/user_registration_model.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/bloc/registration_cubit/registration_cubit.dart';
|
||||
import 'package:eatvio_app/localization/app_localization.dart';
|
||||
import 'package:eatvio_app/generated/l10n.dart';
|
||||
import 'package:eatvio_app/widgets/custom_text_form_field.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
@@ -31,13 +31,14 @@ class _CredentialsScreenState extends State<CredentialsScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = S.of(context);
|
||||
return SingleChildScrollView(
|
||||
padding: EdgeInsets.only(bottom: 80, top: 16, left: 16, right: 16),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("email".tr),
|
||||
Text(s.email),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
controller: emailController,
|
||||
@@ -51,7 +52,7 @@ class _CredentialsScreenState extends State<CredentialsScreen> {
|
||||
},
|
||||
),
|
||||
SizedBox(height: 16),
|
||||
Text("password".tr),
|
||||
Text(s.password),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
obscureText: true,
|
||||
@@ -64,7 +65,7 @@ class _CredentialsScreenState extends State<CredentialsScreen> {
|
||||
},
|
||||
),
|
||||
SizedBox(height: 16),
|
||||
Text("password_confirmation".tr),
|
||||
Text(s.password_confirmation),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
obscureText: true,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:eatvio_app/core/utils/date_time_utils.dart';
|
||||
import 'package:eatvio_app/features/registration/models/user_registration_model.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/bloc/registration_cubit/registration_cubit.dart';
|
||||
import 'package:eatvio_app/localization/app_localization.dart';
|
||||
import 'package:eatvio_app/generated/l10n.dart';
|
||||
import 'package:eatvio_app/theme/theme_helper.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -34,12 +34,13 @@ class _DateOfBirthScreenState extends State<DateOfBirthScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = S.of(context);
|
||||
return SingleChildScrollView(
|
||||
padding: EdgeInsets.only(bottom: 80, top: 16, left: 16, right: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("date_of_birth".tr),
|
||||
Text(s.date_of_birth),
|
||||
SizedBox(height: 4),
|
||||
ListTile(
|
||||
onTap: onTapCalendar(context),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:eatvio_app/features/registration/models/user_registration_model.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/bloc/registration_cubit/registration_cubit.dart';
|
||||
import 'package:eatvio_app/localization/app_localization.dart';
|
||||
import 'package:eatvio_app/generated/l10n.dart';
|
||||
import 'package:eatvio_app/widgets/custom_text_form_field.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
@@ -29,16 +29,17 @@ class _FavoriteFoodsScreenState extends State<FavoriteFoodsScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = S.of(context);
|
||||
return SingleChildScrollView(
|
||||
padding: EdgeInsets.only(bottom: 80, left: 16, right: 16, top: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("favorite_foods".tr),
|
||||
Text(s.favorite_foods),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
controller: favoriteFoodsController,
|
||||
hintText: "enter_information".tr,
|
||||
hintText: s.enter_information,
|
||||
maxLines: 7,
|
||||
minLines: 2,
|
||||
focusNode: favoriteFocusNode,
|
||||
@@ -49,11 +50,11 @@ class _FavoriteFoodsScreenState extends State<FavoriteFoodsScreen> {
|
||||
},
|
||||
),
|
||||
SizedBox(height: 16),
|
||||
Text("unfavorite_foods".tr),
|
||||
Text(s.unfavorite_foods),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
controller: unFavoriteFoodsController,
|
||||
hintText: "enter_information".tr,
|
||||
hintText: s.enter_information,
|
||||
textInputAction: TextInputAction.done,
|
||||
maxLines: 7,
|
||||
minLines: 2,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:eatvio_app/features/registration/models/user_registration_model.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/bloc/registration_cubit/registration_cubit.dart';
|
||||
import 'package:eatvio_app/localization/app_localization.dart';
|
||||
import 'package:eatvio_app/generated/l10n.dart';
|
||||
import 'package:eatvio_app/widgets/custom_text_form_field.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
@@ -27,12 +27,13 @@ class _FavoriteSportsScreenState extends State<FavoriteSportsScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = S.of(context);
|
||||
return SingleChildScrollView(
|
||||
padding: EdgeInsets.only(bottom: 80, left: 16, right: 16, top: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("your_favorite_sports".tr),
|
||||
Text(s.your_favorite_sports),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
controller: enterInformationController,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:eatvio_app/features/registration/models/user_registration_model.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/bloc/registration_cubit/registration_cubit.dart';
|
||||
import 'package:eatvio_app/localization/app_localization.dart';
|
||||
import 'package:eatvio_app/generated/l10n.dart';
|
||||
import 'package:eatvio_app/widgets/custom_text_form_field.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
@@ -28,12 +28,13 @@ class _HeightScreenState extends State<HeightScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = S.of(context);
|
||||
return SingleChildScrollView(
|
||||
padding: EdgeInsets.only(bottom: 80, left: 16, right: 16, top: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("your_height".tr),
|
||||
Text(s.your_height),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
textInputAction: TextInputAction.done,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:eatvio_app/data/models/selectionPopupModel/selection_popup_model.dart';
|
||||
import 'package:eatvio_app/features/registration/models/user_registration_model.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/bloc/registration_cubit/registration_cubit.dart';
|
||||
import 'package:eatvio_app/localization/app_localization.dart';
|
||||
import 'package:eatvio_app/generated/l10n.dart';
|
||||
import 'package:eatvio_app/widgets/custom_drop_down.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
@@ -36,18 +36,19 @@ class _LanguageSelectScreenState extends State<LanguageSelectScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = S.of(context);
|
||||
return SingleChildScrollView(
|
||||
padding: EdgeInsets.only(bottom: 80, right: 16, left: 16, top: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"preferred_language".tr,
|
||||
s.preferred_language,
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
CustomDropDown(
|
||||
value: value,
|
||||
hintText: "Не выбрано".tr,
|
||||
hintText: "Не выбрано",
|
||||
items: dropdownItemList,
|
||||
onChanged: (SelectionPopupModel newValue) => setState(() {
|
||||
value = newValue;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:eatvio_app/features/registration/models/user_registration_model.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/bloc/registration_cubit/registration_cubit.dart';
|
||||
import 'package:eatvio_app/localization/app_localization.dart';
|
||||
import 'package:eatvio_app/generated/l10n.dart';
|
||||
import 'package:eatvio_app/widgets/custom_text_form_field.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
@@ -27,16 +27,17 @@ class _MedicineIntakeScreenState extends State<MedicineIntakeScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = S.of(context);
|
||||
return SingleChildScrollView(
|
||||
padding: EdgeInsets.only(bottom: 80, left: 16, right: 16, top: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("do_you_take_pills".tr),
|
||||
Text(s.do_you_take_pills),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
controller: enterInformationController,
|
||||
hintText: "enter_information".tr,
|
||||
hintText: s.enter_information,
|
||||
textInputAction: TextInputAction.done,
|
||||
focusNode: infoFocusNode,
|
||||
autofocus: true,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:eatvio_app/features/registration/models/user_registration_model.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/bloc/registration_cubit/registration_cubit.dart';
|
||||
import 'package:eatvio_app/localization/app_localization.dart';
|
||||
import 'package:eatvio_app/generated/l10n.dart';
|
||||
import 'package:eatvio_app/widgets/custom_text_form_field.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
@@ -29,12 +29,13 @@ class _NameScreenState extends State<NameScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = S.of(context);
|
||||
return SingleChildScrollView(
|
||||
padding: EdgeInsets.only(bottom: 80, top: 16, left: 16, right: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("first_name".tr),
|
||||
Text(s.first_name),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
controller: firstNameController,
|
||||
@@ -47,7 +48,7 @@ class _NameScreenState extends State<NameScreen> {
|
||||
},
|
||||
),
|
||||
SizedBox(height: 16),
|
||||
Text("last_name".tr),
|
||||
Text(s.last_name),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
controller: lastNameController,
|
||||
|
||||
@@ -16,7 +16,7 @@ import 'package:eatvio_app/features/registration/presentation/pages/language_sel
|
||||
import 'package:eatvio_app/features/registration/presentation/pages/medicine_intake_screen.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/pages/name_screen.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/pages/weight_screen.dart';
|
||||
import 'package:eatvio_app/localization/app_localization.dart';
|
||||
import 'package:eatvio_app/generated/l10n.dart';
|
||||
import 'package:eatvio_app/locator_service.dart';
|
||||
import 'package:eatvio_app/theme/theme_helper.dart';
|
||||
import 'package:eatvio_app/widgets/app_bar/appbar_title_image.dart';
|
||||
@@ -180,7 +180,12 @@ class _RegistrationScreenState extends State<RegistrationScreen> {
|
||||
Future<bool> canGoNext(RegistrationState state) async {
|
||||
switch (step) {
|
||||
case 2:
|
||||
List<String> errors = validateCredentialsFields(state.sheet.email, state.sheet.password, state.sheet.passwordConfirmation);
|
||||
List<String> errors = validateCredentialsFields(
|
||||
state.sheet.email,
|
||||
state.sheet.password,
|
||||
state.sheet.passwordConfirmation,
|
||||
context,
|
||||
);
|
||||
if (errors.isEmpty) {
|
||||
return true;
|
||||
} else {
|
||||
@@ -209,6 +214,7 @@ class _RegistrationScreenState extends State<RegistrationScreen> {
|
||||
List<String> errors = validateNameFields(
|
||||
state.sheet.firstName.toString(),
|
||||
state.sheet.lastName.toString(),
|
||||
context,
|
||||
);
|
||||
if (errors.isEmpty) {
|
||||
return true;
|
||||
@@ -277,6 +283,7 @@ class _RegistrationScreenState extends State<RegistrationScreen> {
|
||||
state.sheet.chestCircumference.toString(),
|
||||
state.sheet.waistCircumference.toString(),
|
||||
state.sheet.hipCircumference.toString(),
|
||||
context,
|
||||
);
|
||||
if (errors.isEmpty) {
|
||||
return true;
|
||||
@@ -336,43 +343,57 @@ class _RegistrationScreenState extends State<RegistrationScreen> {
|
||||
String chestCircumference,
|
||||
String waistCircumference,
|
||||
String hipCircumference,
|
||||
BuildContext context,
|
||||
) {
|
||||
final s = S.of(context);
|
||||
|
||||
List<String> errors = [];
|
||||
|
||||
if (chestCircumference.isEmpty | waistCircumference.isEmpty | hipCircumference.isEmpty) {
|
||||
errors.add('circumference_empty'.tr);
|
||||
errors.add(s.circumference_empty);
|
||||
}
|
||||
|
||||
if (![chestCircumference, waistCircumference, hipCircumference].every((circumference) => int.tryParse(circumference) != null)) {
|
||||
errors.add('circumference_is_not_a_number'.tr);
|
||||
errors.add(s.circumference_is_not_a_number);
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
List<String> validateCredentialsFields(String email, String password, String passwordConfirmation) {
|
||||
List<String> validateCredentialsFields(
|
||||
String email,
|
||||
String password,
|
||||
String passwordConfirmation,
|
||||
BuildContext context,
|
||||
) {
|
||||
final s = S.of(context);
|
||||
|
||||
List<String> errors = [];
|
||||
|
||||
if (!isEmail(email)) {
|
||||
errors.add('email_invalid'.tr);
|
||||
errors.add(s.email_invalid);
|
||||
}
|
||||
|
||||
if (email.isEmpty) {
|
||||
errors.add('email_empty'.tr);
|
||||
errors.add(s.email_empty);
|
||||
}
|
||||
|
||||
if (password.length < 6) {
|
||||
errors.add('password_short'.tr);
|
||||
errors.add(s.password_short);
|
||||
}
|
||||
|
||||
if (password != passwordConfirmation) {
|
||||
errors.add('password_confirmation_mismatch'.tr);
|
||||
errors.add(s.password_confirmation_mismatch);
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
List<String> validateNameFields(String firstName, String lastName) {
|
||||
List<String> validateNameFields(
|
||||
String firstName,
|
||||
String lastName,
|
||||
BuildContext context,
|
||||
) {
|
||||
List<String> errors = [];
|
||||
|
||||
if (firstName.isEmpty) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:eatvio_app/features/registration/models/user_registration_model.dart';
|
||||
import 'package:eatvio_app/features/registration/presentation/bloc/registration_cubit/registration_cubit.dart';
|
||||
import 'package:eatvio_app/localization/app_localization.dart';
|
||||
import 'package:eatvio_app/generated/l10n.dart';
|
||||
import 'package:eatvio_app/widgets/custom_text_form_field.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
@@ -28,12 +28,13 @@ class _WeightScreenState extends State<WeightScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final s = S.of(context);
|
||||
return SingleChildScrollView(
|
||||
padding: EdgeInsets.only(bottom: 80, left: 16, right: 16, top: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("your_weight".tr),
|
||||
Text(s.your_weight),
|
||||
SizedBox(height: 4),
|
||||
CustomTextFormField(
|
||||
autofocus: true,
|
||||
|
||||
Reference in New Issue
Block a user