submit method
Implementation
void submit(Map<String, String> inputValues) {
add(const EditFormUIState.showLoading());
debugPrint("submit called with $inputValues");
final map = inputValues.map((key, value) {
debugPrint("map1 key: $key, value: $value");
return MapEntry(
editableModel
.getFormViewTypes()
.firstWhere((element) => element.getFormViewModel().key == key),
value);
}).map((key, value) {
debugPrint("map2 key: $key, value: $value");
switch (key.runtimeType) {
case FormCurrencyInputViewType:
return MapEntry(
key.getFormViewModel().key, (double.parse(value) * 100).round());
case FormNumberInputViewType:
return MapEntry(key.getFormViewModel().key, int.parse(value));
case FormTextInputViewType:
return MapEntry(key.getFormViewModel().key, value);
case FormLinkInputViewType:
return MapEntry(key.getFormViewModel().key, value);
case FormRichTextInputViewType:
return MapEntry(key.getFormViewModel().key, value);
case FormListTextInputViewType:
return MapEntry(key.getFormViewModel().key, value.split(","));
case FormBooleanInputViewType:
return MapEntry(key.getFormViewModel().key, value == "true");
case FormSelectorInputViewType:
return MapEntry(key.getFormViewModel().key, value);
case FormYearPickerViewType:
return MapEntry(key.getFormViewModel().key, int.parse(value));
case FormEmailInputViewType:
return MapEntry(key.getFormViewModel().key, value);
default:
throw Exception("invalid type:${key.runtimeType}");
}
});
onSubmit(editableModel.fromEditJson(map));
}