submit method

void submit(
  1. Map<String, String> inputValues
)

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));
}