From 3cf61ce5cae6ed14294df75c230aa7b84c6b3a59 Mon Sep 17 00:00:00 2001 From: maxxkim Date: Tue, 5 Mar 2024 17:22:14 +0300 Subject: [PATCH] refactor(diary): Some more refactoring --- .../blood_pressure_screen.dart | 142 ++++++++++-------- 1 file changed, 81 insertions(+), 61 deletions(-) diff --git a/lib/presentation/registration/blood_pressure_screen/blood_pressure_screen.dart b/lib/presentation/registration/blood_pressure_screen/blood_pressure_screen.dart index ab76f1cc..f0c26a10 100644 --- a/lib/presentation/registration/blood_pressure_screen/blood_pressure_screen.dart +++ b/lib/presentation/registration/blood_pressure_screen/blood_pressure_screen.dart @@ -136,11 +136,7 @@ class _BloodPressureScreenState extends State { items: bloodPressureModelObj?.dropdownItemList ?? [], - onChanged: (value) { - context - .read() - .add(ChangeHypoDownEvent(value: value)); - }); + onChanged: onChangeHyper(context)); })), SizedBox(height: 22.v), Text("do_you_have_hypertension_tendency".tr, @@ -167,10 +163,7 @@ class _BloodPressureScreenState extends State { items: bloodPressureModelObj?.dropdownItemList ?? [], - onChanged: (value) { - context.read().add( - ChangeHyperDropDownEvent(value: value)); - }); + onChanged: onChangeHypo(context)); })), Spacer(), BlocBuilder( @@ -180,65 +173,88 @@ class _BloodPressureScreenState extends State { margin: EdgeInsets.only( left: 16.h, right: 16.h, bottom: 50.v), buttonStyle: CustomButtonStyles.outlinePrimaryTL15, - onPressed: () { - List errors = validateFields( - state.upPressureController!.text, - state.downPressureController!.text); - if (errors.isEmpty) { - UserRegistrationSheet sheet = state - .bloodPressureModelObj!.userRegistrationSheet; - sheet.bloodPressureUp = - state.upPressureController!.text; - sheet.bloodPressureDown = - state.downPressureController!.text; - Navigator.pushNamed( - context, - AppRoutes.favoriteSportsScreen, - arguments: sheet, - ); - } else { - String errorMessage = ''; - - for (var error in errors) { - errorMessage += error + '\n\n'; - } - - showDialog( - context: context, - builder: (context) => AlertDialog( - title: Text('Ошибка'), - content: Text(errorMessage), - actions: [ - TextButton( - onPressed: () { - Navigator.pop(context); - }, - child: Text('OK'), - ), - ], - ), - ); - } - }); + onPressed: onTapContinue(state, context)); }), BlocBuilder( builder: (context, state) { return GestureDetector( - onTap: () { - UserRegistrationSheet sheet = - state.bloodPressureModelObj!.userRegistrationSheet; - Navigator.pushNamed( - context, - AppRoutes.allergiesScreen, - arguments: sheet, - ); - }, + onTap: onTapSkip(state, context), child: Text("skip".tr, style: theme.textTheme.bodyLarge), ); }), ])))); } + onTapSkip(BloodPressureState state, BuildContext context) { + return () { + UserRegistrationSheet sheet = + state.bloodPressureModelObj!.userRegistrationSheet; + Navigator.pushNamed( + context, + AppRoutes.allergiesScreen, + arguments: sheet, + ); + }; + } + + onTapContinue(BloodPressureState state, BuildContext context) { + return () { + List errors = validateFields( + state.upPressureController!.text, state.downPressureController!.text); + if (errors.isEmpty) { + UserRegistrationSheet sheet = + state.bloodPressureModelObj!.userRegistrationSheet; + sheet.bloodPressureUp = state.upPressureController!.text; + sheet.bloodPressureDown = state.downPressureController!.text; + Navigator.pushNamed( + context, + AppRoutes.favoriteSportsScreen, + arguments: sheet, + ); + } else { + String errorMessage = ''; + + for (var error in errors) { + errorMessage += error + '\n\n'; + } + + showDialog( + context: context, + builder: (context) => AlertDialog( + title: Text('Ошибка'), + content: Text(errorMessage), + actions: [ + TextButton( + onPressed: onTapOK(context), + child: Text('OK'), + ), + ], + ), + ); + } + }; + } + + onTapOK(BuildContext context) { + return () { + Navigator.pop(context); + }; + } + + onChangeHypo(BuildContext context) { + return (value) { + context + .read() + .add(ChangeHyperDropDownEvent(value: value)); + }; + } + + onChangeHyper(BuildContext context) { + return (value) { + context.read().add(ChangeHypoDownEvent(value: value)); + }; + } + /// Section Widget _buildAppBar(BuildContext context) { return CustomAppBar( @@ -246,13 +262,17 @@ class _BloodPressureScreenState extends State { leading: AppbarLeadingImage( imagePath: ImageConstant.imgArrowLeft, margin: EdgeInsets.only(left: 16.h, top: 15.v, bottom: 15.v), - onTap: () { - onTapArrowLeft(context); - }), + onTap: onTapBack(context)), centerTitle: true, title: AppbarTitleImage(imagePath: ImageConstant.imgLogoEatvio)); } + Function onTapBack(BuildContext context) { + return () { + onTapArrowLeft(context); + }; + } + /// Navigates to the previous screen. onTapArrowLeft(BuildContext context) { NavigatorService.goBack();