fix overflow in allergies

merge-requests/477/head
Elham Rababah 5 years ago
parent 344ca9c55a
commit e668fd3334

@ -246,7 +246,7 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
widget.myAllergiesList.add(element); widget.myAllergiesList.add(element);
} }
}); });
changeParentState(); // changeParentState();
Navigator.of(context).pop(); Navigator.of(context).pop();
} else { } else {
helpers.showErrorToast(TranslationBase helpers.showErrorToast(TranslationBase

@ -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/patients/profile/soap_update/custom_validation_error.dart';
import 'package:doctor_app_flutter/widgets/shared/TextFields.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/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:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'app-textfield-custom.dart';
import 'app_texts_widget.dart'; import 'app_texts_widget.dart';
import 'dialogs/master_key_dailog.dart'; import 'dialogs/master_key_dailog.dart';
import 'expandable-widget-header-body.dart'; import 'expandable-widget-header-body.dart';
@ -62,542 +64,313 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState
Widget build(BuildContext context) { Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
return Container( return Container(
child: Column( child: Expanded(
children: [ child: Column(
Container( children: [
height: MediaQuery.of(context).size.height * 0.70, Expanded(
child: Center( child: Container(
child: Container( height: MediaQuery.of(context).size.height * 0.70,
decoration: BoxDecoration( child: Center(
borderRadius: BorderRadius.circular(12), child: Container(
color: Colors.white), decoration: BoxDecoration(
child: Column( borderRadius: BorderRadius.circular(12),
children: [ color: Colors.white),
TextFields( child: Column(
hintText: widget.hintSearchText ?? children: [
TranslationBase.of(context).selectAllergy, TextFields(
borderWidth: 0.0, hintText: widget.hintSearchText ??
padding: EdgeInsets.all(20), TranslationBase.of(context).selectAllergy,
borderRadius: 0, borderWidth: 0.0,
suffixIcon: EvaIcons.search, padding: EdgeInsets.all(20),
onChanged: (value) { borderRadius: 0,
filterSearchResults(value); suffixIcon: EvaIcons.search,
}, onChanged: (value) {
), filterSearchResults(value);
SizedBox( },
height: 10, ),
), SizedBox(
Expanded( height: 10,
child: FractionallySizedBox( ),
widthFactor: 0.9, Expanded(
child: Container( child: FractionallySizedBox(
height: MediaQuery.of(context).size.height * 0.60, widthFactor: 0.9,
child: ListView.builder( child: Container(
itemCount: items.length, height: MediaQuery.of(context).size.height * 0.60,
itemBuilder: (context, index) { child: ListView.builder(
bool isSelected = itemCount: items.length,
widget.isServiceSelected(items[index]); itemBuilder: (context, index) {
MySelectedAllergy mySelectedAllergy; bool isSelected =
if (isSelected) { widget.isServiceSelected(items[index]);
mySelectedAllergy = MySelectedAllergy mySelectedAllergy;
widget.getServiceSelectedAllergy( if (isSelected) {
items[index]); mySelectedAllergy =
} widget.getServiceSelectedAllergy(
TextEditingController remarkController = items[index]);
TextEditingController( }
text: isSelected TextEditingController remarkController =
? mySelectedAllergy.remark TextEditingController(
: null); text: isSelected
TextEditingController severityController = ? mySelectedAllergy.remark
TextEditingController( : null);
text: isSelected TextEditingController severityController =
? mySelectedAllergy TextEditingController(
.selectedAllergySeverity != text: isSelected
null ? mySelectedAllergy
? projectViewModel.isArabic .selectedAllergySeverity !=
? mySelectedAllergy null
.selectedAllergySeverity ? projectViewModel.isArabic
.nameAr ? mySelectedAllergy
: mySelectedAllergy .selectedAllergySeverity
.selectedAllergySeverity .nameAr
.nameEn : mySelectedAllergy
: null .selectedAllergySeverity
: null); .nameEn
return HeaderBodyExpandableNotifier( : null
headerWidget: Row( : null);
mainAxisAlignment: return HeaderBodyExpandableNotifier(
MainAxisAlignment.spaceBetween, headerWidget: Row(
children: [ mainAxisAlignment:
Row( MainAxisAlignment.spaceBetween,
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(
children: [ children: [
Row( Row(
children: [ children: [
Checkbox( Checkbox(
value: widget value:
.isServiceSelected( widget.isServiceSelected(
items[index]), items[index]),
activeColor: activeColor: Colors.red[800],
Colors.red[800],
onChanged: (bool newValue) { onChanged: (bool newValue) {
// setState(() { setState(() {
// if (widget if (widget
// .isServiceSelected(items[index])) { .isServiceSelected(
// widget.removeHistory(items[index]); items[index])) {
// } else { widget.removeAllergy(
// widget.addHistory(items[index]); 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( child: Padding(
padding: const EdgeInsets padding: const EdgeInsets
.symmetric( .symmetric(
horizontal: 10, horizontal: 10,
vertical: 0), vertical: 0),
child: AppText( child: Container(
projectViewModel.isArabic
? items[index] child: AppText(
.nameAr != projectViewModel.isArabic
"" ? items[index]
? items[index] .nameAr !=
.nameAr ""
: items[index] ? items[index]
.nameEn .nameAr
: items[index].nameEn, : items[index]
color: Color(0xFF575757), .nameEn
fontSize: 16, : items[index].nameEn,
fontWeight: color: Color(0xFF575757),
FontWeight.w600, fontSize: 16,
fontWeight:
FontWeight.w600,
),
width: MediaQuery.of(context).size.width * 0.55,
), ),
), ),
), ),
], ],
), ),
if(widget InkWell(
.isServiceSelected( onTap: () {
items[index])) if (mySelectedAllergy != null) {
Column(children: [ setState(() {
TextFields( mySelectedAllergy
onTapTextFields: widget.model .isExpanded =
.allergySeverityList !=
null
? () {
MasterKeyDailog dialog =
MasterKeyDailog(
list: widget.model
.allergySeverityList,
okText:
TranslationBase.of(
context)
.ok,
okFunction:
(selectedValue) {
setState(() {
mySelectedAllergy mySelectedAllergy
.selectedAllergySeverity = .isExpanded
selectedValue; ? false
}); : true;
}, });
);
showDialog(
barrierDismissible:
false,
context: context,
builder: (BuildContext
context) {
return dialog;
},
);
} }
: null, },
hasLabelText: child: Icon((mySelectedAllergy !=
mySelectedAllergy null
.selectedAllergySeverity != ? mySelectedAllergy
null .isExpanded
? true : false)
: false, ? EvaIcons
showLabelText: true, .arrowIosUpwardOutline
hintText: : EvaIcons
TranslationBase .arrowIosDownwardOutline))
.of(context) ],
.selectSeverity, ),
fontSize: 13.5, bodyWidget: Column(
readOnly: true, children: [
// hintColor: Colors.black, AppTextFieldCustom(
fontWeight: FontWeight.w600, onClick: widget.model
maxLines: 2, .allergySeverityList !=
minLines: 1, null
controller: severityController, ? () {
validator: (value) { MasterKeyDailog dialog =
if (value == null) MasterKeyDailog(
return TranslationBase list: widget.model
.of( .allergySeverityList,
context) okText:
.emptyMessage; TranslationBase.of(
else context)
return null; .ok,
}), okFunction:
SizedBox( (selectedValue) {
height: 5, setState(() {
), mySelectedAllergy
if(isSubmitted && .selectedAllergySeverity =
mySelectedAllergy selectedValue;
.selectedAllergySeverity == null) });
Row( },
);
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: [ children: [
CustomValidationError(), CustomValidationError(),
], ],
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
), ),
SizedBox( SizedBox(
height: 10, height: 10,
), ),
Container( Container(
margin: EdgeInsets.only( margin: EdgeInsets.only(
left: 0, right: 0, top: 15), left: 0, right: 0, top: 15),
child: TextFields( child: NewTextFields(
hasLabelText: hintText: TranslationBase
remarkController.text != .of(
'' context)
? true .remarks,
: false, fontSize: 13.5,
showLabelText: true, // hintColor: Colors.black,
hintText: TranslationBase fontWeight: FontWeight.w600,
.of( maxLines: 25,
context) minLines: 3,
.remarks, initialValue: isSelected
fontSize: 13.5, ? mySelectedAllergy
// hintColor: Colors.black, .remark : '',
fontWeight: FontWeight.w600, // controller: remarkControlle
maxLines: 25,
minLines: 10,
initialValue: isSelected
? mySelectedAllergy
.remark : '',
// controller: remarkControlle
onChanged: (value) { onChanged: (value) {
if (isSelected) { if (isSelected) {
mySelectedAllergy mySelectedAllergy
.remark = value; .remark = value;
}; }
}, },
validator: (value) { validator: (value) {
if (value == null) if (value == null)
return TranslationBase return TranslationBase
.of( .of(
context) context)
.emptyMessage; .emptyMessage;
else else
return null; return null;
}), }),
), ),
SizedBox( SizedBox(
height: 10, height: 10,
), ),
],) ],),
], isExpand: mySelectedAllergy != null
), ? mySelectedAllergy.isExpanded
), : false,
// DividerWithSpacesAround(), );
], },
); ),
}, ),
), ),
), ),
), ],
), )
], )),
) ),
)), ),
), SizedBox(
SizedBox( height: 10,
height: 10,
),
if (widget.model.state == ViewState.Idle)
AppButton(
title: "Add Selected Allergy",
padding: 10,
color: Color(0xFF359846),
onPressed: () {
setState(() {
isSubmitted = true;
});
widget.addSelectedAllergy();
},
), ),
], if (widget.model.state == ViewState.Idle)
AppButton(
title: "Add Selected Allergy",
padding: 10,
color: Color(0xFF359846),
onPressed: () {
setState(() {
isSubmitted = true;
});
widget.addSelectedAllergy();
},
),
],
),
), ),
); );
} }

Loading…
Cancel
Save