Added navigation between screens
@@ -1,3 +1,3 @@
|
||||
TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoiNjU3ZmYzZmVjMzBjMTkwMDFjZTZiNTM4IiwiX2lkIjoiNjU3ZmYzZmVjMzBjMTkwMDFjZTZiNTM4In0sImNvbXBhbnlJZCI6IjY1N2ZmM2ZlYzMwYzE5MDAxY2U2YjUzYSIsImFwcGxpY2F0aW9uSWQiOiI2NTdmZmI0NGE1ZDdiNDAwMjIzMGEwZWMiLCJpYXQiOjE3MDI4ODYyMTJ9.24JeUo8jgiAwKQkeKhwu49qjWT2CnXAoQrDmduDL0d0
|
||||
SEMANTIC_VERSION = 1.0
|
||||
VERSION_NUMBER = 3
|
||||
VERSION_NUMBER = 6
|
||||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
@@ -26,6 +26,6 @@ subprojects {
|
||||
project.evaluationDependsOn(':app')
|
||||
}
|
||||
|
||||
task clean(type: Delete) {
|
||||
tasks.register("clean", Delete) {
|
||||
delete rootProject.buildDir
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
@@ -44,7 +44,11 @@ class AdditionalInformationScreen extends StatelessWidget {
|
||||
SizedBox(height: 73.v),
|
||||
_buildNinetyThree(context),
|
||||
Spacer(),
|
||||
CustomOutlinedButton(text: "lbl2".tr.toUpperCase()),
|
||||
CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
onPressed: () {
|
||||
showSuccessMessage(context);
|
||||
}),
|
||||
SizedBox(height: 17.v),
|
||||
Text("lbl3".tr, style: theme.textTheme.bodyLarge)
|
||||
]))));
|
||||
@@ -119,4 +123,23 @@ class AdditionalInformationScreen extends StatelessWidget {
|
||||
onTapArrowLeft(BuildContext context) {
|
||||
NavigatorService.goBack();
|
||||
}
|
||||
|
||||
/// Displays an alert dialog when the action is triggered.
|
||||
/// The dialog box contains a title and a message with the `Теперь вы можете пользоваться полным функционалом приложения`
|
||||
showSuccessMessage(BuildContext context) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (_) => AlertDialog(
|
||||
title: const Text('Регистрация завершена!'),
|
||||
content: const Text(
|
||||
'Теперь вы можете пользоваться полным функционалом приложения'),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
Navigator.pop(context);
|
||||
},
|
||||
child: const Text('Ok'))
|
||||
],
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,11 @@ class AllergiesScreen extends StatelessWidget {
|
||||
Spacer(flex: 36),
|
||||
_buildNinetyThree(context),
|
||||
Spacer(flex: 63),
|
||||
CustomOutlinedButton(text: "lbl2".tr.toUpperCase()),
|
||||
CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
onPressed: () {
|
||||
navigateToMedicine(context);
|
||||
}),
|
||||
SizedBox(height: 17.v),
|
||||
Text("lbl3".tr, style: theme.textTheme.bodyLarge)
|
||||
]))));
|
||||
@@ -92,4 +96,11 @@ class AllergiesScreen extends StatelessWidget {
|
||||
onTapArrowLeft(BuildContext context) {
|
||||
NavigatorService.goBack();
|
||||
}
|
||||
|
||||
/// Navigates to the medicineIntakeScreen when the action is triggered.
|
||||
navigateToMedicine(BuildContext context) {
|
||||
NavigatorService.pushNamed(
|
||||
AppRoutes.medicineIntakeScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,7 +107,10 @@ class BloodPressureScreen extends StatelessWidget {
|
||||
Spacer(),
|
||||
CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
margin: EdgeInsets.symmetric(horizontal: 4.h)),
|
||||
margin: EdgeInsets.symmetric(horizontal: 4.h),
|
||||
onPressed: () {
|
||||
navigateToSports(context);
|
||||
}),
|
||||
SizedBox(height: 17.v),
|
||||
Text("lbl3".tr, style: theme.textTheme.bodyLarge)
|
||||
]))));
|
||||
@@ -149,4 +152,11 @@ class BloodPressureScreen extends StatelessWidget {
|
||||
onTapArrowLeft(BuildContext context) {
|
||||
NavigatorService.goBack();
|
||||
}
|
||||
|
||||
/// Navigates to the favoriteSportsScreen when the action is triggered.
|
||||
navigateToSports(BuildContext context) {
|
||||
NavigatorService.pushNamed(
|
||||
AppRoutes.favoriteSportsScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,7 +74,11 @@ class BodyCircumferencesScreen extends StatelessWidget {
|
||||
textInputAction: TextInputAction.done);
|
||||
}),
|
||||
Spacer(),
|
||||
CustomOutlinedButton(text: "lbl2".tr.toUpperCase()),
|
||||
CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
onPressed: () {
|
||||
navigateToWeight(context);
|
||||
}),
|
||||
SizedBox(height: 17.v),
|
||||
Text("lbl3".tr, style: theme.textTheme.bodyLarge)
|
||||
]))));
|
||||
@@ -113,4 +117,11 @@ class BodyCircumferencesScreen extends StatelessWidget {
|
||||
onTapArrowLeft(BuildContext context) {
|
||||
NavigatorService.goBack();
|
||||
}
|
||||
|
||||
/// Navigates to the weightScreen when the action is triggered.
|
||||
navigateToWeight(BuildContext context) {
|
||||
NavigatorService.pushNamed(
|
||||
AppRoutes.weightScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,7 +99,11 @@ class CityOfLivingScreen extends StatelessWidget {
|
||||
});
|
||||
}),
|
||||
Spacer(flex: 65),
|
||||
CustomOutlinedButton(text: "lbl2".tr.toUpperCase()),
|
||||
CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
onPressed: () {
|
||||
navigateToCircumferences(context);
|
||||
}),
|
||||
SizedBox(height: 17.v),
|
||||
Text("lbl3".tr, style: theme.textTheme.bodyLarge)
|
||||
]))));
|
||||
@@ -123,4 +127,11 @@ class CityOfLivingScreen extends StatelessWidget {
|
||||
onTapArrowLeft(BuildContext context) {
|
||||
NavigatorService.goBack();
|
||||
}
|
||||
|
||||
/// Navigates to the bodyCircumferencesScreen when the action is triggered.
|
||||
navigateToCircumferences(BuildContext context) {
|
||||
NavigatorService.pushNamed(
|
||||
AppRoutes.bodyCircumferencesScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,11 @@ class DateOfBirthScreen extends StatelessWidget {
|
||||
Spacer(flex: 39),
|
||||
_buildDateInput(context),
|
||||
Spacer(flex: 60),
|
||||
CustomOutlinedButton(text: "lbl2".tr.toUpperCase()),
|
||||
CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
onPressed: () {
|
||||
navigateToCity(context);
|
||||
}),
|
||||
SizedBox(height: 17.v),
|
||||
Align(
|
||||
alignment: Alignment.centerLeft,
|
||||
@@ -101,8 +105,12 @@ class DateOfBirthScreen extends StatelessWidget {
|
||||
SizedBox(height: 6.v),
|
||||
Align(
|
||||
alignment: Alignment.center,
|
||||
child: Text("lbl_01_01_2000".tr,
|
||||
style: theme.textTheme.titleMedium)),
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
openDatePickerDialog(context);
|
||||
},
|
||||
child: Text("lbl_01_01_2000".tr,
|
||||
style: theme.textTheme.titleMedium))),
|
||||
SizedBox(height: 4.v)
|
||||
]));
|
||||
}
|
||||
@@ -111,4 +119,24 @@ class DateOfBirthScreen extends StatelessWidget {
|
||||
onTapArrowLeft(BuildContext context) {
|
||||
NavigatorService.goBack();
|
||||
}
|
||||
|
||||
/// Displays a date picker dialog to update the selected date
|
||||
///
|
||||
/// This function returns a `Future` that completes with `void`.
|
||||
Future<void> openDatePickerDialog(BuildContext context) async {
|
||||
var initialState = BlocProvider.of<DateOfBirthBloc>(context).state;
|
||||
DateTime? dateTime = await showDatePicker(
|
||||
context: context,
|
||||
initialDate: DateTime.now(),
|
||||
firstDate: DateTime(1970),
|
||||
lastDate: DateTime(
|
||||
DateTime.now().year, DateTime.now().month, DateTime.now().day));
|
||||
}
|
||||
|
||||
/// Navigates to the cityOfLivingScreen when the action is triggered.
|
||||
navigateToCity(BuildContext context) {
|
||||
NavigatorService.pushNamed(
|
||||
AppRoutes.cityOfLivingScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,11 @@ class FavoriteFoodsScreen extends StatelessWidget {
|
||||
SizedBox(height: 22.v),
|
||||
_buildNinetyThree1(context),
|
||||
SizedBox(height: 27.v),
|
||||
CustomOutlinedButton(text: "lbl2".tr.toUpperCase()),
|
||||
CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
onPressed: () {
|
||||
navigateToSchedule(context);
|
||||
}),
|
||||
SizedBox(height: 17.v),
|
||||
Text("lbl3".tr, style: theme.textTheme.bodyLarge)
|
||||
]))));
|
||||
@@ -122,4 +126,11 @@ class FavoriteFoodsScreen extends StatelessWidget {
|
||||
onTapArrowLeft(BuildContext context) {
|
||||
NavigatorService.goBack();
|
||||
}
|
||||
|
||||
/// Navigates to the scheduleScreen when the action is triggered.
|
||||
navigateToSchedule(BuildContext context) {
|
||||
NavigatorService.pushNamed(
|
||||
AppRoutes.scheduleScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,8 +16,6 @@ class FavoriteSportsBloc
|
||||
FavoriteSportsInitialEvent event,
|
||||
Emitter<FavoriteSportsState> emit,
|
||||
) async {
|
||||
emit(state.copyWith(
|
||||
enterinformationController: TextEditingController(),
|
||||
));
|
||||
emit(state.copyWith(enterinformationController: TextEditingController()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,122 +6,89 @@ import 'package:eatvio_app/widgets/custom_text_form_field.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class FavoriteSportsScreen extends StatelessWidget {
|
||||
const FavoriteSportsScreen({Key? key})
|
||||
: super(
|
||||
key: key,
|
||||
);
|
||||
const FavoriteSportsScreen({Key? key}) : super(key: key);
|
||||
|
||||
static Widget builder(BuildContext context) {
|
||||
return BlocProvider<FavoriteSportsBloc>(
|
||||
create: (context) => FavoriteSportsBloc(FavoriteSportsState(
|
||||
favoriteSportsModelObj: FavoriteSportsModel(),
|
||||
))
|
||||
..add(FavoriteSportsInitialEvent()),
|
||||
child: FavoriteSportsScreen(),
|
||||
);
|
||||
create: (context) => FavoriteSportsBloc(
|
||||
FavoriteSportsState(favoriteSportsModelObj: FavoriteSportsModel()))
|
||||
..add(FavoriteSportsInitialEvent()),
|
||||
child: FavoriteSportsScreen());
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
mediaQueryData = MediaQuery.of(context);
|
||||
|
||||
return SafeArea(
|
||||
child: Scaffold(
|
||||
resizeToAvoidBottomInset: false,
|
||||
body: Container(
|
||||
width: double.maxFinite,
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 16.h,
|
||||
vertical: 5.v,
|
||||
),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
CustomImageView(
|
||||
imagePath: ImageConstant.imgLogoEatvio,
|
||||
height: 50.adaptSize,
|
||||
width: 50.adaptSize,
|
||||
),
|
||||
SizedBox(height: 20.v),
|
||||
_buildProgressIndicatorSection(context),
|
||||
SizedBox(height: 38.v),
|
||||
Text(
|
||||
"msg11".tr,
|
||||
style: theme.textTheme.headlineSmall,
|
||||
),
|
||||
Spacer(
|
||||
flex: 32,
|
||||
),
|
||||
_buildNinetyThreeSection(context),
|
||||
Spacer(
|
||||
flex: 67,
|
||||
),
|
||||
CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
),
|
||||
SizedBox(height: 17.v),
|
||||
Text(
|
||||
"lbl3".tr,
|
||||
style: theme.textTheme.bodyLarge,
|
||||
),
|
||||
SizedBox(height: 4.v),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
child: Scaffold(
|
||||
resizeToAvoidBottomInset: false,
|
||||
body: Container(
|
||||
width: double.maxFinite,
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.h, vertical: 5.v),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
CustomImageView(
|
||||
imagePath: ImageConstant.imgLogoEatvio,
|
||||
height: 50.adaptSize,
|
||||
width: 50.adaptSize),
|
||||
SizedBox(height: 20.v),
|
||||
_buildProgressIndicatorSection(context),
|
||||
SizedBox(height: 38.v),
|
||||
Text("msg11".tr, style: theme.textTheme.headlineSmall),
|
||||
Spacer(flex: 32),
|
||||
_buildNinetyThreeSection(context),
|
||||
Spacer(flex: 67),
|
||||
CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
onPressed: () {
|
||||
navigateToFoods(context);
|
||||
}),
|
||||
SizedBox(height: 17.v),
|
||||
Text("lbl3".tr, style: theme.textTheme.bodyLarge),
|
||||
SizedBox(height: 4.v)
|
||||
]))));
|
||||
}
|
||||
|
||||
/// Section Widget
|
||||
Widget _buildProgressIndicatorSection(BuildContext context) {
|
||||
return Container(
|
||||
width: 343.h,
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 4.h,
|
||||
vertical: 3.v,
|
||||
),
|
||||
decoration: AppDecoration.outlinePrimary.copyWith(
|
||||
borderRadius: BorderRadiusStyle.circleBorder8,
|
||||
),
|
||||
child: Container(
|
||||
height: 8.v,
|
||||
width: 259.h,
|
||||
decoration: BoxDecoration(
|
||||
color: appTheme.blueA400,
|
||||
borderRadius: BorderRadius.circular(
|
||||
4.h,
|
||||
),
|
||||
border: Border.all(
|
||||
color: theme.colorScheme.primary,
|
||||
width: 1.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
width: 343.h,
|
||||
padding: EdgeInsets.symmetric(horizontal: 4.h, vertical: 3.v),
|
||||
decoration: AppDecoration.outlinePrimary
|
||||
.copyWith(borderRadius: BorderRadiusStyle.circleBorder8),
|
||||
child: Container(
|
||||
height: 8.v,
|
||||
width: 259.h,
|
||||
decoration: BoxDecoration(
|
||||
color: appTheme.blueA400,
|
||||
borderRadius: BorderRadius.circular(4.h),
|
||||
border:
|
||||
Border.all(color: theme.colorScheme.primary, width: 1.h))));
|
||||
}
|
||||
|
||||
/// Section Widget
|
||||
Widget _buildNinetyThreeSection(BuildContext context) {
|
||||
return Column(
|
||||
children: [
|
||||
Text(
|
||||
"msg4".tr,
|
||||
style: CustomTextStyles.titleMediumSegoeUI,
|
||||
),
|
||||
SizedBox(height: 2.v),
|
||||
BlocSelector<FavoriteSportsBloc, FavoriteSportsState,
|
||||
TextEditingController?>(
|
||||
return Column(children: [
|
||||
Text("msg4".tr, style: CustomTextStyles.titleMediumSegoeUI),
|
||||
SizedBox(height: 2.v),
|
||||
BlocSelector<FavoriteSportsBloc, FavoriteSportsState,
|
||||
TextEditingController?>(
|
||||
selector: (state) => state.enterinformationController,
|
||||
builder: (context, enterinformationController) {
|
||||
return CustomTextFormField(
|
||||
controller: enterinformationController,
|
||||
hintText: "msg5".tr,
|
||||
textInputAction: TextInputAction.done,
|
||||
maxLines: 8,
|
||||
);
|
||||
},
|
||||
),
|
||||
],
|
||||
controller: enterinformationController,
|
||||
hintText: "msg5".tr,
|
||||
textInputAction: TextInputAction.done,
|
||||
maxLines: 8);
|
||||
})
|
||||
]);
|
||||
}
|
||||
|
||||
/// Navigates to the favoriteFoodsScreen when the action is triggered.
|
||||
navigateToFoods(BuildContext context) {
|
||||
NavigatorService.pushNamed(
|
||||
AppRoutes.favoriteFoodsScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,11 @@ class GenderScreen extends StatelessWidget {
|
||||
SizedBox(height: 20.v),
|
||||
Text(""),
|
||||
Spacer(flex: 66),
|
||||
CustomOutlinedButton(text: "lbl2".tr.toUpperCase()),
|
||||
CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
onPressed: () {
|
||||
navigateToDate(context);
|
||||
}),
|
||||
SizedBox(height: 17.v),
|
||||
Text("lbl3".tr, style: theme.textTheme.bodyLarge)
|
||||
]))));
|
||||
@@ -81,4 +85,11 @@ class GenderScreen extends StatelessWidget {
|
||||
onTapArrowLeft(BuildContext context) {
|
||||
NavigatorService.goBack();
|
||||
}
|
||||
|
||||
/// Navigates to the dateOfBirthScreen when the action is triggered.
|
||||
navigateToDate(BuildContext context) {
|
||||
NavigatorService.pushNamed(
|
||||
AppRoutes.dateOfBirthScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,35 +18,22 @@ class LanguageSelectBloc
|
||||
Emitter<LanguageSelectState> emit,
|
||||
) async {
|
||||
emit(state.copyWith(
|
||||
languageSelectModelObj: state.languageSelectModelObj?.copyWith(
|
||||
dropdownItemList: fillDropdownItemList(),
|
||||
)));
|
||||
languageSelectModelObj: state.languageSelectModelObj
|
||||
?.copyWith(dropdownItemList: fillDropdownItemList())));
|
||||
}
|
||||
|
||||
_changeDropDown(
|
||||
ChangeDropDownEvent event,
|
||||
Emitter<LanguageSelectState> emit,
|
||||
) {
|
||||
emit(state.copyWith(
|
||||
selectedDropDownValue: event.value,
|
||||
));
|
||||
emit(state.copyWith(selectedDropDownValue: event.value));
|
||||
}
|
||||
|
||||
List<SelectionPopupModel> fillDropdownItemList() {
|
||||
return [
|
||||
SelectionPopupModel(
|
||||
id: 1,
|
||||
title: "Item One",
|
||||
isSelected: true,
|
||||
),
|
||||
SelectionPopupModel(
|
||||
id: 2,
|
||||
title: "Item Two",
|
||||
),
|
||||
SelectionPopupModel(
|
||||
id: 3,
|
||||
title: "Item Three",
|
||||
)
|
||||
SelectionPopupModel(id: 1, title: "Item One", isSelected: true),
|
||||
SelectionPopupModel(id: 2, title: "Item Two"),
|
||||
SelectionPopupModel(id: 3, title: "Item Three")
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,137 +6,101 @@ import 'package:eatvio_app/widgets/custom_outlined_button.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class LanguageSelectScreen extends StatelessWidget {
|
||||
const LanguageSelectScreen({Key? key})
|
||||
: super(
|
||||
key: key,
|
||||
);
|
||||
const LanguageSelectScreen({Key? key}) : super(key: key);
|
||||
|
||||
static Widget builder(BuildContext context) {
|
||||
return BlocProvider<LanguageSelectBloc>(
|
||||
create: (context) => LanguageSelectBloc(LanguageSelectState(
|
||||
languageSelectModelObj: LanguageSelectModel(),
|
||||
))
|
||||
..add(LanguageSelectInitialEvent()),
|
||||
child: LanguageSelectScreen(),
|
||||
);
|
||||
create: (context) => LanguageSelectBloc(
|
||||
LanguageSelectState(languageSelectModelObj: LanguageSelectModel()))
|
||||
..add(LanguageSelectInitialEvent()),
|
||||
child: LanguageSelectScreen());
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
mediaQueryData = MediaQuery.of(context);
|
||||
|
||||
return SafeArea(
|
||||
child: Scaffold(
|
||||
body: Container(
|
||||
width: double.maxFinite,
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 16.h,
|
||||
vertical: 5.v,
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
CustomImageView(
|
||||
imagePath: ImageConstant.imgLogoEatvio,
|
||||
height: 50.adaptSize,
|
||||
width: 50.adaptSize,
|
||||
),
|
||||
SizedBox(height: 20.v),
|
||||
_buildProgressIndicatorSection(context),
|
||||
SizedBox(height: 20.v),
|
||||
Container(
|
||||
width: 262.h,
|
||||
margin: EdgeInsets.only(
|
||||
left: 41.h,
|
||||
right: 39.h,
|
||||
),
|
||||
child: Text(
|
||||
"msg17".tr,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
textAlign: TextAlign.center,
|
||||
style: theme.textTheme.headlineSmall,
|
||||
),
|
||||
),
|
||||
Spacer(
|
||||
flex: 36,
|
||||
),
|
||||
BlocSelector<LanguageSelectBloc, LanguageSelectState,
|
||||
LanguageSelectModel?>(
|
||||
selector: (state) => state.languageSelectModelObj,
|
||||
builder: (context, languageSelectModelObj) {
|
||||
return CustomDropDown(
|
||||
icon: Container(
|
||||
margin: EdgeInsets.fromLTRB(30.h, 11.v, 17.h, 11.v),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(
|
||||
1.h,
|
||||
),
|
||||
),
|
||||
child: CustomImageView(
|
||||
imagePath: ImageConstant.imgFavorite,
|
||||
height: 12.adaptSize,
|
||||
width: 12.adaptSize,
|
||||
),
|
||||
),
|
||||
hintText: "lbl_english".tr,
|
||||
items: languageSelectModelObj?.dropdownItemList ?? [],
|
||||
onChanged: (value) {
|
||||
context
|
||||
.read<LanguageSelectBloc>()
|
||||
.add(ChangeDropDownEvent(value: value));
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
Spacer(
|
||||
flex: 63,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: _buildContinueButtonSection(context),
|
||||
),
|
||||
);
|
||||
child: Scaffold(
|
||||
body: Container(
|
||||
width: double.maxFinite,
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.h, vertical: 5.v),
|
||||
child: Column(children: [
|
||||
CustomImageView(
|
||||
imagePath: ImageConstant.imgLogoEatvio,
|
||||
height: 50.adaptSize,
|
||||
width: 50.adaptSize),
|
||||
SizedBox(height: 20.v),
|
||||
_buildProgressIndicatorSection(context),
|
||||
SizedBox(height: 20.v),
|
||||
Container(
|
||||
width: 262.h,
|
||||
margin: EdgeInsets.only(left: 41.h, right: 39.h),
|
||||
child: Text("msg17".tr,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
textAlign: TextAlign.center,
|
||||
style: theme.textTheme.headlineSmall)),
|
||||
Spacer(flex: 36),
|
||||
BlocSelector<LanguageSelectBloc, LanguageSelectState,
|
||||
LanguageSelectModel?>(
|
||||
selector: (state) => state.languageSelectModelObj,
|
||||
builder: (context, languageSelectModelObj) {
|
||||
return CustomDropDown(
|
||||
icon: Container(
|
||||
margin:
|
||||
EdgeInsets.fromLTRB(30.h, 11.v, 17.h, 11.v),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(1.h)),
|
||||
child: CustomImageView(
|
||||
imagePath: ImageConstant.imgFavorite,
|
||||
height: 12.adaptSize,
|
||||
width: 12.adaptSize)),
|
||||
hintText: "lbl_english".tr,
|
||||
items:
|
||||
languageSelectModelObj?.dropdownItemList ?? [],
|
||||
onChanged: (value) {
|
||||
context
|
||||
.read<LanguageSelectBloc>()
|
||||
.add(ChangeDropDownEvent(value: value));
|
||||
});
|
||||
}),
|
||||
Spacer(flex: 63)
|
||||
])),
|
||||
bottomNavigationBar: _buildContinueButtonSection(context)));
|
||||
}
|
||||
|
||||
/// Section Widget
|
||||
Widget _buildProgressIndicatorSection(BuildContext context) {
|
||||
return Container(
|
||||
width: 343.h,
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 4.h,
|
||||
vertical: 3.v,
|
||||
),
|
||||
decoration: AppDecoration.outlinePrimary.copyWith(
|
||||
borderRadius: BorderRadiusStyle.circleBorder8,
|
||||
),
|
||||
child: Container(
|
||||
height: 8.v,
|
||||
width: 20.h,
|
||||
decoration: BoxDecoration(
|
||||
color: appTheme.blueA400,
|
||||
borderRadius: BorderRadius.circular(
|
||||
4.h,
|
||||
),
|
||||
border: Border.all(
|
||||
color: theme.colorScheme.primary,
|
||||
width: 1.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
width: 343.h,
|
||||
padding: EdgeInsets.symmetric(horizontal: 4.h, vertical: 3.v),
|
||||
decoration: AppDecoration.outlinePrimary
|
||||
.copyWith(borderRadius: BorderRadiusStyle.circleBorder8),
|
||||
child: Container(
|
||||
height: 8.v,
|
||||
width: 20.h,
|
||||
decoration: BoxDecoration(
|
||||
color: appTheme.blueA400,
|
||||
borderRadius: BorderRadius.circular(4.h),
|
||||
border:
|
||||
Border.all(color: theme.colorScheme.primary, width: 1.h))));
|
||||
}
|
||||
|
||||
/// Section Widget
|
||||
Widget _buildContinueButtonSection(BuildContext context) {
|
||||
return CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
margin: EdgeInsets.only(
|
||||
left: 16.h,
|
||||
right: 16.h,
|
||||
bottom: 50.v,
|
||||
),
|
||||
buttonStyle: CustomButtonStyles.outlinePrimaryTL15,
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
margin: EdgeInsets.only(left: 16.h, right: 16.h, bottom: 50.v),
|
||||
buttonStyle: CustomButtonStyles.outlinePrimaryTL15,
|
||||
onPressed: () {
|
||||
navigteToGender(context);
|
||||
});
|
||||
}
|
||||
|
||||
/// Navigates to the genderScreen when the action is triggered.
|
||||
navigteToGender(BuildContext context) {
|
||||
NavigatorService.pushNamed(
|
||||
AppRoutes.genderScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,11 @@ class MedicineIntakeScreen extends StatelessWidget {
|
||||
SizedBox(height: 86.v),
|
||||
_buildNinetyThree(context),
|
||||
Spacer(),
|
||||
CustomOutlinedButton(text: "lbl2".tr.toUpperCase()),
|
||||
CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
onPressed: () {
|
||||
navigateToPressure(context);
|
||||
}),
|
||||
SizedBox(height: 17.v),
|
||||
Text("lbl3".tr, style: theme.textTheme.bodyLarge)
|
||||
]))));
|
||||
@@ -100,4 +104,11 @@ class MedicineIntakeScreen extends StatelessWidget {
|
||||
onTapArrowLeft(BuildContext context) {
|
||||
NavigatorService.goBack();
|
||||
}
|
||||
|
||||
/// Navigates to the bloodPressureScreen when the action is triggered.
|
||||
navigateToPressure(BuildContext context) {
|
||||
NavigatorService.pushNamed(
|
||||
AppRoutes.bloodPressureScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,11 @@ class ScheduleScreen extends StatelessWidget {
|
||||
SizedBox(height: 67.v),
|
||||
_buildNinetyThree(context),
|
||||
Spacer(),
|
||||
CustomOutlinedButton(text: "lbl2".tr.toUpperCase()),
|
||||
CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
onPressed: () {
|
||||
navigateToAdditional(context);
|
||||
}),
|
||||
SizedBox(height: 17.v),
|
||||
Text("lbl3".tr, style: theme.textTheme.bodyLarge)
|
||||
]))));
|
||||
@@ -102,4 +106,11 @@ class ScheduleScreen extends StatelessWidget {
|
||||
onTapArrowLeft(BuildContext context) {
|
||||
NavigatorService.goBack();
|
||||
}
|
||||
|
||||
/// Navigates to the additionalInformationScreen when the action is triggered.
|
||||
navigateToAdditional(BuildContext context) {
|
||||
NavigatorService.pushNamed(
|
||||
AppRoutes.additionalInformationScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,11 @@ class WeightScreen extends StatelessWidget {
|
||||
SizedBox(height: 39.v),
|
||||
_buildTwentySix(context),
|
||||
Spacer(),
|
||||
CustomOutlinedButton(text: "lbl2".tr.toUpperCase()),
|
||||
CustomOutlinedButton(
|
||||
text: "lbl2".tr.toUpperCase(),
|
||||
onPressed: () {
|
||||
navigateToAllergies(context);
|
||||
}),
|
||||
SizedBox(height: 17.v),
|
||||
Text("lbl3".tr, style: theme.textTheme.bodyLarge)
|
||||
]))));
|
||||
@@ -109,4 +113,11 @@ class WeightScreen extends StatelessWidget {
|
||||
onTapArrowLeft(BuildContext context) {
|
||||
NavigatorService.goBack();
|
||||
}
|
||||
|
||||
/// Navigates to the allergiesScreen when the action is triggered.
|
||||
navigateToAllergies(BuildContext context) {
|
||||
NavigatorService.pushNamed(
|
||||
AppRoutes.allergiesScreen,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||