fix error on load when listener

This commit is contained in:
2024-11-25 12:34:46 +02:00
parent e44117d9e5
commit 9b00270dd7
2 changed files with 137 additions and 137 deletions

View File

@@ -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();

View File

@@ -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();