fix error on load when listener
This commit is contained in:
@@ -46,11 +46,12 @@ class _AddPatientState extends State<AddPatient> {
|
|||||||
|
|
||||||
final baseAPI = AppEnviroment.baseApiUrl;
|
final baseAPI = AppEnviroment.baseApiUrl;
|
||||||
late int futureDocOfficeId;
|
late int futureDocOfficeId;
|
||||||
late bool medRequired;
|
//late bool medRequired;
|
||||||
|
final ValueNotifier<bool> medRequired = ValueNotifier(false);
|
||||||
final FocusNode _focusNode = FocusNode();
|
final FocusNode _focusNode = FocusNode();
|
||||||
|
|
||||||
bool isFieldsFilled() {
|
bool isFieldsFilled() {
|
||||||
if (medRequired) {
|
if (medRequired.value) {
|
||||||
if (idController.text.isEmpty ||
|
if (idController.text.isEmpty ||
|
||||||
fnameController.text.isEmpty ||
|
fnameController.text.isEmpty ||
|
||||||
lnameController.text.isEmpty ||
|
lnameController.text.isEmpty ||
|
||||||
@@ -151,13 +152,9 @@ class _AddPatientState extends State<AddPatient> {
|
|||||||
void isRequired() {
|
void isRequired() {
|
||||||
//print("listerner triggered");
|
//print("listerner triggered");
|
||||||
if (medAidController.text == "Yes") {
|
if (medAidController.text == "Yes") {
|
||||||
setState(() {
|
medRequired.value = true;
|
||||||
medRequired = true;
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
setState(() {
|
medRequired.value = false;
|
||||||
medRequired = false;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -235,54 +232,59 @@ class _AddPatientState extends State<AddPatient> {
|
|||||||
controller: medAidController,
|
controller: medAidController,
|
||||||
hintText: "Medical Aid",
|
hintText: "Medical Aid",
|
||||||
editable: true,
|
editable: true,
|
||||||
onSelect: (_) {
|
// onSelect: (_) {
|
||||||
isRequired();
|
// isRequired();
|
||||||
},
|
// },
|
||||||
required: true,
|
required: true,
|
||||||
dropdownOptions: const ["Yes", "No"],
|
dropdownOptions: const ["Yes", "No"],
|
||||||
),
|
),
|
||||||
Visibility(
|
ValueListenableBuilder(
|
||||||
visible: medRequired,
|
valueListenable: medRequired,
|
||||||
child: Column(
|
builder: (BuildContext context, bool value, Widget? child) {
|
||||||
children: [
|
return Visibility(
|
||||||
const SizedBox(height: 10.0),
|
visible: value,
|
||||||
MIHDropdownField(
|
child: Column(
|
||||||
controller: medMainMemController,
|
children: [
|
||||||
hintText: "Main Member",
|
const SizedBox(height: 10.0),
|
||||||
editable: medRequired,
|
MIHDropdownField(
|
||||||
required: medRequired,
|
controller: medMainMemController,
|
||||||
dropdownOptions: const ["Yes", "No"],
|
hintText: "Main Member",
|
||||||
|
editable: value,
|
||||||
|
required: value,
|
||||||
|
dropdownOptions: const ["Yes", "No"],
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: medNoController,
|
||||||
|
hintText: "Medical Aid No.",
|
||||||
|
editable: value,
|
||||||
|
required: value,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: medAidCodeController,
|
||||||
|
hintText: "Medical Aid Code",
|
||||||
|
editable: value,
|
||||||
|
required: value,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: medNameController,
|
||||||
|
hintText: "Medical Aid Name",
|
||||||
|
editable: value,
|
||||||
|
required: value,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: medSchemeController,
|
||||||
|
hintText: "Medical Aid Scheme",
|
||||||
|
editable: value,
|
||||||
|
required: value,
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: 10.0),
|
);
|
||||||
MIHTextField(
|
},
|
||||||
controller: medNoController,
|
|
||||||
hintText: "Medical Aid No.",
|
|
||||||
editable: medRequired,
|
|
||||||
required: medRequired,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: medAidCodeController,
|
|
||||||
hintText: "Medical Aid Code",
|
|
||||||
editable: medRequired,
|
|
||||||
required: medRequired,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: medNameController,
|
|
||||||
hintText: "Medical Aid Name",
|
|
||||||
editable: medRequired,
|
|
||||||
required: medRequired,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: medSchemeController,
|
|
||||||
hintText: "Medical Aid Scheme",
|
|
||||||
editable: medRequired,
|
|
||||||
required: medRequired,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
const SizedBox(height: 30.0),
|
const SizedBox(height: 30.0),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
@@ -372,6 +374,8 @@ class _AddPatientState extends State<AddPatient> {
|
|||||||
medSchemeController.dispose();
|
medSchemeController.dispose();
|
||||||
addressController.dispose();
|
addressController.dispose();
|
||||||
medAidController.dispose();
|
medAidController.dispose();
|
||||||
|
medAidCodeController.removeListener(isRequired);
|
||||||
|
medRequired.dispose();
|
||||||
medMainMemController.dispose();
|
medMainMemController.dispose();
|
||||||
medAidCodeController.dispose();
|
medAidCodeController.dispose();
|
||||||
_focusNode.dispose();
|
_focusNode.dispose();
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ class _EditPatientState extends State<EditPatient> {
|
|||||||
|
|
||||||
late int futureDocOfficeId;
|
late int futureDocOfficeId;
|
||||||
late String userEmail;
|
late String userEmail;
|
||||||
late bool medRequired;
|
// bool medRequired = false;
|
||||||
|
final ValueNotifier<bool> medRequired = ValueNotifier(false);
|
||||||
|
|
||||||
late double width;
|
late double width;
|
||||||
late double height;
|
late double height;
|
||||||
@@ -324,7 +325,7 @@ class _EditPatientState extends State<EditPatient> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool isFieldsFilled() {
|
bool isFieldsFilled() {
|
||||||
if (medRequired) {
|
if (medRequired.value) {
|
||||||
if (idController.text.isEmpty ||
|
if (idController.text.isEmpty ||
|
||||||
fnameController.text.isEmpty ||
|
fnameController.text.isEmpty ||
|
||||||
lnameController.text.isEmpty ||
|
lnameController.text.isEmpty ||
|
||||||
@@ -357,15 +358,13 @@ class _EditPatientState extends State<EditPatient> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void isRequired() {
|
void isRequired() {
|
||||||
//print("listerner triggered");
|
print("listerner triggered");
|
||||||
if (medAidController.text == "Yes") {
|
if (medAidController.text == "Yes") {
|
||||||
setState(() {
|
medRequired.value = true;
|
||||||
medRequired = true;
|
} else if (medAidController.text == "No") {
|
||||||
});
|
medRequired.value = false;
|
||||||
} else {
|
} else {
|
||||||
setState(() {
|
//print("here");
|
||||||
medRequired = false;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -456,63 +455,68 @@ class _EditPatientState extends State<EditPatient> {
|
|||||||
MIHDropdownField(
|
MIHDropdownField(
|
||||||
controller: medAidController,
|
controller: medAidController,
|
||||||
hintText: "Medical Aid",
|
hintText: "Medical Aid",
|
||||||
onSelect: (selected) {
|
// onSelect: (selected) {
|
||||||
if (selected == "Yes") {
|
// if (selected == "Yes") {
|
||||||
setState(() {
|
// setState(() {
|
||||||
medRequired = true;
|
// medRequired = true;
|
||||||
});
|
// });
|
||||||
} else {
|
// } else {
|
||||||
setState(() {
|
// setState(() {
|
||||||
medRequired = false;
|
// medRequired = false;
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
editable: true,
|
editable: true,
|
||||||
required: true,
|
required: true,
|
||||||
dropdownOptions: const ["Yes", "No"],
|
dropdownOptions: const ["Yes", "No"],
|
||||||
),
|
),
|
||||||
Visibility(
|
ValueListenableBuilder(
|
||||||
visible: medRequired,
|
valueListenable: medRequired,
|
||||||
child: Column(
|
builder: (BuildContext context, bool value, Widget? child) {
|
||||||
children: [
|
return Visibility(
|
||||||
const SizedBox(height: 10.0),
|
visible: value,
|
||||||
MIHDropdownField(
|
child: Column(
|
||||||
controller: medMainMemController,
|
children: [
|
||||||
hintText: "Main Member.",
|
const SizedBox(height: 10.0),
|
||||||
editable: medRequired,
|
MIHDropdownField(
|
||||||
required: medRequired,
|
controller: medMainMemController,
|
||||||
dropdownOptions: const ["Yes", "No"],
|
hintText: "Main Member.",
|
||||||
|
editable: value,
|
||||||
|
required: value,
|
||||||
|
dropdownOptions: const ["Yes", "No"],
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: medNoController,
|
||||||
|
hintText: "Medical Aid No.",
|
||||||
|
editable: value,
|
||||||
|
required: value,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: medAidCodeController,
|
||||||
|
hintText: "Medical Aid Code",
|
||||||
|
editable: value,
|
||||||
|
required: value,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: medNameController,
|
||||||
|
hintText: "Medical Aid Name",
|
||||||
|
editable: value,
|
||||||
|
required: value,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10.0),
|
||||||
|
MIHTextField(
|
||||||
|
controller: medSchemeController,
|
||||||
|
hintText: "Medical Aid Scheme",
|
||||||
|
editable: value,
|
||||||
|
required: value,
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: 10.0),
|
);
|
||||||
MIHTextField(
|
},
|
||||||
controller: medNoController,
|
|
||||||
hintText: "Medical Aid No.",
|
|
||||||
editable: medRequired,
|
|
||||||
required: medRequired,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: medAidCodeController,
|
|
||||||
hintText: "Medical Aid Code",
|
|
||||||
editable: medRequired,
|
|
||||||
required: medRequired,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: medNameController,
|
|
||||||
hintText: "Medical Aid Name",
|
|
||||||
editable: medRequired,
|
|
||||||
required: medRequired,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 10.0),
|
|
||||||
MIHTextField(
|
|
||||||
controller: medSchemeController,
|
|
||||||
hintText: "Medical Aid Scheme",
|
|
||||||
editable: medRequired,
|
|
||||||
required: medRequired,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
const SizedBox(height: 30.0),
|
const SizedBox(height: 30.0),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
@@ -535,7 +539,7 @@ class _EditPatientState extends State<EditPatient> {
|
|||||||
|
|
||||||
void submitForm() {
|
void submitForm() {
|
||||||
if (isFieldsFilled()) {
|
if (isFieldsFilled()) {
|
||||||
if (!medRequired) {
|
if (!medRequired.value) {
|
||||||
setState(() {
|
setState(() {
|
||||||
medMainMemController.text = "";
|
medMainMemController.text = "";
|
||||||
medNoController.text = "";
|
medNoController.text = "";
|
||||||
@@ -611,8 +615,10 @@ class _EditPatientState extends State<EditPatient> {
|
|||||||
medSchemeController.dispose();
|
medSchemeController.dispose();
|
||||||
addressController.dispose();
|
addressController.dispose();
|
||||||
medAidController.dispose();
|
medAidController.dispose();
|
||||||
|
medAidCodeController.removeListener(isRequired);
|
||||||
medMainMemController.dispose();
|
medMainMemController.dispose();
|
||||||
medAidCodeController.dispose();
|
medAidCodeController.dispose();
|
||||||
|
medRequired.dispose();
|
||||||
_focusNode.dispose();
|
_focusNode.dispose();
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
@@ -622,29 +628,19 @@ class _EditPatientState extends State<EditPatient> {
|
|||||||
getLoginUserEmail();
|
getLoginUserEmail();
|
||||||
medAidController.addListener(isRequired);
|
medAidController.addListener(isRequired);
|
||||||
setState(() {
|
setState(() {
|
||||||
idController.value = TextEditingValue(text: widget.selectedPatient.id_no);
|
idController.text = widget.selectedPatient.id_no;
|
||||||
fnameController.value =
|
fnameController.text = widget.selectedPatient.first_name;
|
||||||
TextEditingValue(text: widget.selectedPatient.first_name);
|
lnameController.text = widget.selectedPatient.last_name;
|
||||||
lnameController.value =
|
cellController.text = widget.selectedPatient.cell_no;
|
||||||
TextEditingValue(text: widget.selectedPatient.last_name);
|
emailController.text = widget.selectedPatient.email;
|
||||||
cellController.value =
|
medNameController.text = widget.selectedPatient.medical_aid_name;
|
||||||
TextEditingValue(text: widget.selectedPatient.cell_no);
|
medNoController.text = widget.selectedPatient.medical_aid_no;
|
||||||
emailController.value =
|
medSchemeController.text = widget.selectedPatient.medical_aid_scheme;
|
||||||
TextEditingValue(text: widget.selectedPatient.email);
|
addressController.text = widget.selectedPatient.address;
|
||||||
medNameController.value =
|
medAidController.text = widget.selectedPatient.medical_aid;
|
||||||
TextEditingValue(text: widget.selectedPatient.medical_aid_name);
|
medMainMemController.text =
|
||||||
medNoController.value =
|
widget.selectedPatient.medical_aid_main_member;
|
||||||
TextEditingValue(text: widget.selectedPatient.medical_aid_no);
|
medAidCodeController.text = widget.selectedPatient.medical_aid_code;
|
||||||
medSchemeController.value =
|
|
||||||
TextEditingValue(text: widget.selectedPatient.medical_aid_scheme);
|
|
||||||
addressController.value =
|
|
||||||
TextEditingValue(text: widget.selectedPatient.address);
|
|
||||||
medAidController.value =
|
|
||||||
TextEditingValue(text: widget.selectedPatient.medical_aid);
|
|
||||||
medMainMemController.value = TextEditingValue(
|
|
||||||
text: widget.selectedPatient.medical_aid_main_member);
|
|
||||||
medAidCodeController.value =
|
|
||||||
TextEditingValue(text: widget.selectedPatient.medical_aid_code);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
super.initState();
|
super.initState();
|
||||||
|
|||||||
Reference in New Issue
Block a user