From e668fd3334c01dff14cad6c7f2cc1e987365539a Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Tue, 13 Apr 2021 16:57:28 +0300 Subject: [PATCH] fix overflow in allergies --- .../allergies/update_allergies_widget.dart | 2 +- ..._key_checkbox_search_allergies_widget.dart | 793 +++++++----------- 2 files changed, 284 insertions(+), 511 deletions(-) diff --git a/lib/widgets/patients/profile/soap_update/subjective/allergies/update_allergies_widget.dart b/lib/widgets/patients/profile/soap_update/subjective/allergies/update_allergies_widget.dart index 65cd1d63..5fa3535b 100644 --- a/lib/widgets/patients/profile/soap_update/subjective/allergies/update_allergies_widget.dart +++ b/lib/widgets/patients/profile/soap_update/subjective/allergies/update_allergies_widget.dart @@ -246,7 +246,7 @@ class _UpdateAllergiesWidgetState extends State { widget.myAllergiesList.add(element); } }); - changeParentState(); + // changeParentState(); Navigator.of(context).pop(); } else { helpers.showErrorToast(TranslationBase diff --git a/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart index 4a4f765a..52aa5e99 100644 --- a/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart +++ b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart @@ -7,11 +7,13 @@ import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/soap_update/custom_validation_error.dart'; import 'package:doctor_app_flutter/widgets/shared/TextFields.dart'; import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart'; +import 'package:doctor_app_flutter/widgets/shared/new_text_Field.dart'; import 'package:eva_icons_flutter/eva_icons_flutter.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'app-textfield-custom.dart'; import 'app_texts_widget.dart'; import 'dialogs/master_key_dailog.dart'; import 'expandable-widget-header-body.dart'; @@ -62,542 +64,313 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return Container( - child: Column( - children: [ - Container( - height: MediaQuery.of(context).size.height * 0.70, - child: Center( - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: Colors.white), - child: Column( - children: [ - TextFields( - hintText: widget.hintSearchText ?? - TranslationBase.of(context).selectAllergy, - borderWidth: 0.0, - padding: EdgeInsets.all(20), - borderRadius: 0, - suffixIcon: EvaIcons.search, - onChanged: (value) { - filterSearchResults(value); - }, - ), - SizedBox( - height: 10, - ), - Expanded( - child: FractionallySizedBox( - widthFactor: 0.9, - child: Container( - height: MediaQuery.of(context).size.height * 0.60, - child: ListView.builder( - itemCount: items.length, - itemBuilder: (context, index) { - bool isSelected = - widget.isServiceSelected(items[index]); - MySelectedAllergy mySelectedAllergy; - if (isSelected) { - mySelectedAllergy = - widget.getServiceSelectedAllergy( - items[index]); - } - TextEditingController remarkController = - TextEditingController( - text: isSelected - ? mySelectedAllergy.remark - : null); - TextEditingController severityController = - TextEditingController( - text: isSelected - ? mySelectedAllergy - .selectedAllergySeverity != - null - ? projectViewModel.isArabic - ? mySelectedAllergy - .selectedAllergySeverity - .nameAr - : mySelectedAllergy - .selectedAllergySeverity - .nameEn - : null - : null); - return HeaderBodyExpandableNotifier( - headerWidget: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Row( - children: [ - Checkbox( - value: - widget.isServiceSelected( - items[index]), - activeColor: Colors.red[800], - onChanged: (bool newValue) { - setState(() { - if (widget - .isServiceSelected( - items[index])) { - widget.removeAllergy( - items[index]); - } else { - MySelectedAllergy - mySelectedAllergy = - new MySelectedAllergy( - selectedAllergy: - items[index], - selectedAllergySeverity: - _selectedAllergySeverity, - remark: null, - isChecked: true, - isExpanded: true); - widget.addAllergy( - mySelectedAllergy); - } - }); - }), - InkWell( - onTap: () { - setState(() { - if (widget - .isServiceSelected( - items[index])) { - widget.removeAllergy( - items[index]); - } else { - // TODO add Allergy - - MySelectedAllergy - mySelectedAllergy = - new MySelectedAllergy( - selectedAllergy: - items[index], - selectedAllergySeverity: - _selectedAllergySeverity, - remark: null, - isChecked: true, - isExpanded: true); - widget.addAllergy( - mySelectedAllergy); - } - }); - }, - child: Padding( - padding: const EdgeInsets - .symmetric( - horizontal: 10, - vertical: 0), - child: Container( - - child: AppText( - projectViewModel.isArabic - ? items[index] - .nameAr != - "" - ? items[index] - .nameAr - : items[index] - .nameEn - : items[index].nameEn, - color: Color(0xFF575757), - fontSize: 16, - fontWeight: - FontWeight.w600, - ), - width: MediaQuery.of(context).size.width * 0.55, - ), - ), - ), - ], - ), - InkWell( - onTap: () { - if (mySelectedAllergy != null) { - setState(() { - mySelectedAllergy - .isExpanded = - mySelectedAllergy - .isExpanded - ? false - : true; - }); - } - }, - child: Icon((mySelectedAllergy != - null - ? mySelectedAllergy - .isExpanded - : false) - ? EvaIcons - .arrowIosUpwardOutline - : EvaIcons - .arrowIosDownwardOutline)) - ], - ), - bodyWidget: Column( - children: [ - TextFields( - onTapTextFields: widget.model - .allergySeverityList != - null - ? () { - MasterKeyDailog dialog = - MasterKeyDailog( - list: widget.model - .allergySeverityList, - okText: - TranslationBase.of( - context) - .ok, - okFunction: - (selectedValue) { - setState(() { - mySelectedAllergy - .selectedAllergySeverity = - selectedValue; - }); - }, - ); - showDialog( - barrierDismissible: - false, - context: context, - builder: (BuildContext - context) { - return dialog; - }, - ); - } - : null, - hasLabelText: - mySelectedAllergy != null && - mySelectedAllergy - .selectedAllergySeverity != - null - ? true - : false, - showLabelText: true, - hintText: - TranslationBase - .of(context) - .selectSeverity, - fontSize: 13.5, - readOnly: true, - // hintColor: Colors.black, - fontWeight: FontWeight.w600, - maxLines: 2, - minLines: 1, - controller: severityController, - validator: (value) { - if (value == null) - return TranslationBase - .of( - context) - .emptyMessage; - else - return null; - }), - SizedBox( - height: 5, - ), - if(isSubmitted && - mySelectedAllergy - .selectedAllergySeverity == null) - Row( - - children: [ - CustomValidationError(), - ], - mainAxisAlignment: MainAxisAlignment.start, - ), - - SizedBox( - height: 10, - ), - Container( - margin: EdgeInsets.only( - left: 0, right: 0, top: 15), - child: TextFields( - hasLabelText: - remarkController.text != - '' - ? true - : false, - showLabelText: true, - hintText: TranslationBase - .of( - context) - .remarks, - fontSize: 13.5, - // hintColor: Colors.black, - fontWeight: FontWeight.w600, - maxLines: 25, - minLines: 10, - initialValue: isSelected - ? mySelectedAllergy - .remark : '', - // controller: remarkControlle - - onChanged: (value) { - if (isSelected) { - mySelectedAllergy - .remark = value; - }; - }, - - validator: (value) { - if (value == null) - return TranslationBase - .of( - context) - .emptyMessage; - else - return null; - }), - ), - SizedBox( - height: 10, - ), - ],), - isExpand: mySelectedAllergy != null - ? mySelectedAllergy.isExpanded - : false, - ); - - - - - Column( - children: [ - InkWell( - onTap: () { - setState(() { - if (widget.isServiceSelected( - items[index])) { - widget - .removeAllergy( - items[index]); - } else { - // TODO add Allergy - - MySelectedAllergy - mySelectedAllergy = - new MySelectedAllergy( - selectedAllergy: - items[index], - selectedAllergySeverity: - _selectedAllergySeverity, - remark: null, - isChecked: true); - widget.addAllergy( - mySelectedAllergy); - } - }); - }, - child: Column( + child: Expanded( + child: Column( + children: [ + Expanded( + child: Container( + height: MediaQuery.of(context).size.height * 0.70, + child: Center( + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.white), + child: Column( + children: [ + TextFields( + hintText: widget.hintSearchText ?? + TranslationBase.of(context).selectAllergy, + borderWidth: 0.0, + padding: EdgeInsets.all(20), + borderRadius: 0, + suffixIcon: EvaIcons.search, + onChanged: (value) { + filterSearchResults(value); + }, + ), + SizedBox( + height: 10, + ), + Expanded( + child: FractionallySizedBox( + widthFactor: 0.9, + child: Container( + height: MediaQuery.of(context).size.height * 0.60, + child: ListView.builder( + itemCount: items.length, + itemBuilder: (context, index) { + bool isSelected = + widget.isServiceSelected(items[index]); + MySelectedAllergy mySelectedAllergy; + if (isSelected) { + mySelectedAllergy = + widget.getServiceSelectedAllergy( + items[index]); + } + TextEditingController remarkController = + TextEditingController( + text: isSelected + ? mySelectedAllergy.remark + : null); + TextEditingController severityController = + TextEditingController( + text: isSelected + ? mySelectedAllergy + .selectedAllergySeverity != + null + ? projectViewModel.isArabic + ? mySelectedAllergy + .selectedAllergySeverity + .nameAr + : mySelectedAllergy + .selectedAllergySeverity + .nameEn + : null + : null); + return HeaderBodyExpandableNotifier( + headerWidget: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, children: [ Row( children: [ Checkbox( - value: widget - .isServiceSelected( + value: + widget.isServiceSelected( items[index]), - activeColor: - Colors.red[800], + activeColor: Colors.red[800], onChanged: (bool newValue) { - // setState(() { - // if (widget - // .isServiceSelected(items[index])) { - // widget.removeHistory(items[index]); - // } else { - // widget.addHistory(items[index]); - // } - // }); + setState(() { + if (widget + .isServiceSelected( + items[index])) { + widget.removeAllergy( + items[index]); + } else { + MySelectedAllergy + mySelectedAllergy = + new MySelectedAllergy( + selectedAllergy: + items[index], + selectedAllergySeverity: + _selectedAllergySeverity, + remark: null, + isChecked: true, + isExpanded: true); + widget.addAllergy( + mySelectedAllergy); + } + }); }), - Expanded( + InkWell( + onTap: () { + setState(() { + if (widget + .isServiceSelected( + items[index])) { + widget.removeAllergy( + items[index]); + } else { + // TODO add Allergy + + MySelectedAllergy + mySelectedAllergy = + new MySelectedAllergy( + selectedAllergy: + items[index], + selectedAllergySeverity: + _selectedAllergySeverity, + remark: null, + isChecked: true, + isExpanded: true); + widget.addAllergy( + mySelectedAllergy); + } + }); + }, child: Padding( padding: const EdgeInsets .symmetric( horizontal: 10, vertical: 0), - child: AppText( - projectViewModel.isArabic - ? items[index] - .nameAr != - "" - ? items[index] - .nameAr - : items[index] - .nameEn - : items[index].nameEn, - color: Color(0xFF575757), - fontSize: 16, - fontWeight: - FontWeight.w600, + child: Container( + + child: AppText( + projectViewModel.isArabic + ? items[index] + .nameAr != + "" + ? items[index] + .nameAr + : items[index] + .nameEn + : items[index].nameEn, + color: Color(0xFF575757), + fontSize: 16, + fontWeight: + FontWeight.w600, + ), + width: MediaQuery.of(context).size.width * 0.55, ), ), ), ], ), - if(widget - .isServiceSelected( - items[index])) - Column(children: [ - TextFields( - onTapTextFields: widget.model - .allergySeverityList != - null - ? () { - MasterKeyDailog dialog = - MasterKeyDailog( - list: widget.model - .allergySeverityList, - okText: - TranslationBase.of( - context) - .ok, - okFunction: - (selectedValue) { - setState(() { + InkWell( + onTap: () { + if (mySelectedAllergy != null) { + setState(() { + mySelectedAllergy + .isExpanded = mySelectedAllergy - .selectedAllergySeverity = - selectedValue; - }); - }, - ); - showDialog( - barrierDismissible: - false, - context: context, - builder: (BuildContext - context) { - return dialog; - }, - ); + .isExpanded + ? false + : true; + }); } - : null, - hasLabelText: - mySelectedAllergy - .selectedAllergySeverity != - null - ? true - : false, - showLabelText: true, - hintText: - TranslationBase - .of(context) - .selectSeverity, - fontSize: 13.5, - readOnly: true, - // hintColor: Colors.black, - fontWeight: FontWeight.w600, - maxLines: 2, - minLines: 1, - controller: severityController, - validator: (value) { - if (value == null) - return TranslationBase - .of( - context) - .emptyMessage; - else - return null; - }), - SizedBox( - height: 5, - ), - if(isSubmitted && - mySelectedAllergy - .selectedAllergySeverity == null) - Row( + }, + child: Icon((mySelectedAllergy != + null + ? mySelectedAllergy + .isExpanded + : false) + ? EvaIcons + .arrowIosUpwardOutline + : EvaIcons + .arrowIosDownwardOutline)) + ], + ), + bodyWidget: Column( + children: [ + AppTextFieldCustom( + onClick: widget.model + .allergySeverityList != + null + ? () { + MasterKeyDailog dialog = + MasterKeyDailog( + list: widget.model + .allergySeverityList, + okText: + TranslationBase.of( + context) + .ok, + okFunction: + (selectedValue) { + setState(() { + mySelectedAllergy + .selectedAllergySeverity = + selectedValue; + }); + }, + ); + showDialog( + barrierDismissible: + false, + context: context, + builder: (BuildContext + context) { + return dialog; + }, + ); + } + : null, + isDropDown: true, + hintText: + TranslationBase + .of(context) + .selectSeverity, + enabled: false, + maxLines: 2, + minLines: 2, + controller: severityController,), + SizedBox( + height: 5, + ), + if(isSubmitted && mySelectedAllergy !=null && + mySelectedAllergy + .selectedAllergySeverity == null) + Row( - children: [ - CustomValidationError(), - ], - mainAxisAlignment: MainAxisAlignment.start, - ), + children: [ + CustomValidationError(), + ], + mainAxisAlignment: MainAxisAlignment.start, + ), - SizedBox( - height: 10, - ), - Container( - margin: EdgeInsets.only( - left: 0, right: 0, top: 15), - child: TextFields( - hasLabelText: - remarkController.text != - '' - ? true - : false, - showLabelText: true, - hintText: TranslationBase - .of( - context) - .remarks, - fontSize: 13.5, - // hintColor: Colors.black, - fontWeight: FontWeight.w600, - maxLines: 25, - minLines: 10, - initialValue: isSelected - ? mySelectedAllergy - .remark : '', - // controller: remarkControlle + SizedBox( + height: 10, + ), + Container( + margin: EdgeInsets.only( + left: 0, right: 0, top: 15), + child: NewTextFields( + hintText: TranslationBase + .of( + context) + .remarks, + fontSize: 13.5, + // hintColor: Colors.black, + fontWeight: FontWeight.w600, + maxLines: 25, + minLines: 3, + initialValue: isSelected + ? mySelectedAllergy + .remark : '', + // controller: remarkControlle - onChanged: (value) { - if (isSelected) { - mySelectedAllergy - .remark = value; - }; - }, + onChanged: (value) { + if (isSelected) { + mySelectedAllergy + .remark = value; + } + }, - validator: (value) { - if (value == null) - return TranslationBase - .of( - context) - .emptyMessage; - else - return null; - }), - ), - SizedBox( - height: 10, - ), - ],) - ], - ), - ), - // DividerWithSpacesAround(), - ], - ); - }, + validator: (value) { + if (value == null) + return TranslationBase + .of( + context) + .emptyMessage; + else + return null; + }), + ), + SizedBox( + height: 10, + ), + ],), + isExpand: mySelectedAllergy != null + ? mySelectedAllergy.isExpanded + : false, + ); + }, + ), + ), ), ), - ), - ), - ], - ) - )), - ), - SizedBox( - height: 10, - ), - if (widget.model.state == ViewState.Idle) - AppButton( - title: "Add Selected Allergy", - padding: 10, - color: Color(0xFF359846), - onPressed: () { - setState(() { - isSubmitted = true; - }); - widget.addSelectedAllergy(); - }, + ], + ) + )), + ), + ), + SizedBox( + height: 10, ), - ], + if (widget.model.state == ViewState.Idle) + AppButton( + title: "Add Selected Allergy", + padding: 10, + color: Color(0xFF359846), + onPressed: () { + setState(() { + isSubmitted = true; + }); + widget.addSelectedAllergy(); + }, + ), + ], + ), ), ); }