updateCustom method

InputStatus updateCustom(
  1. String key,
  2. FormItem v,
  3. Object? d
)

Implementation

InputStatus updateCustom(String key, FormItem v, Object? d) {
  v.onChange?.call(d);

  final mapping = formMap.value[key]?.objectMapping?.outputToForm;
  if (mapping != null) {
    final newValues = mapping(d) ?? {};
    if (newValues.isNotEmpty) {
      for (final entry in newValues.entries) {
        final fieldKey = entry.key;
        final fieldValue = entry.value;
        final fieldItem = formMap.value[fieldKey];
        if (fieldItem != null) {
          updateValueMap(fieldKey, fieldItem, fieldValue, updateControllerText: true);
        }
      }
      return updateValueMap(key, v, newValues.values.first ?? d);
    }
  }

  formMap.value[key]?.value = d;
  return updateValueMap(key, v, d);
}