I am developing an industrial app using flutter.
The app involves lot of input from user be it TextFormField or DropDownSearchField
.
If user changes/modifies the data/value of any field that is above current field all the data of bellow field must be cleared.
e.g. : If user has set 10 of 12 field numbered (1 to 12), then user decides to change Field 3 then all field bellow Field 3 must be cleared (reset).
I was looking into Switch fallthrough but dart seems to give me error The 'case' should not complete normally. Try adding 'break', or 'return', etc.
I really want to avoid code duplication where by I write clear code in each case. Using if statement is complicating logic.
I looked into solution but I wish to avoid label and continue statement (as this look like goto statement from other languages).
What are my options here?
Code :
void clearDataAfterStepChange({required int step}) {
switch (step) {
//Clear All Steps Bellow 1 -> Product Code
case 1:
_productCodeController.clear();
//Clear All Steps Bellow 2 -> Batch Number
case 2:
_batchNumberController.clear();
//Clear All Steps Bellow 3 -> Area
case 3:
_areaController.clear();
//Clear All Steps Bellow 4 -> Room Name
case 4:
_roomNumberController.clear();
//Clear All Steps Bellow 5 -> Stage
case 5:
_stageController.clear();
//Clear All Steps Bellow 6 -> Product Type
case 6:
_productTypeController.clear();
//Clear All Steps Bellow 7 -> Product Name
case 7:
_productNameController.clear();
//Clear All Steps Bellow 8 -> Product Version Number
case 8:
_productVersionNumberController.clear();
//Clear All Steps Bellow 9 -> Version Number
case 9:
_versionNumberController.clear();
//Clear All Steps Bellow 10 -> BMR Number
case 10:
_bmrNumberController.clear();
//Clear All Steps Bellow 11 -> BMR Version Number
case 11:
_bmrVersionNumberController.clear();
//Clear All Steps Bellow 12 -> Process Order Number
case 12:
_processOrderNumberController.clear();
// Do Nothing
default:
break;
}
}