fieldWidget method

Widget fieldWidget(
  1. Field<Object> field, {
  2. String? nextFieldId,
  3. bool isFinal = false,
})

Returns the matching widget for a given Field

Implementation

Widget fieldWidget(
  Field field, {
  String? nextFieldId,
  bool isFinal = false,
}) {
  final AutovalidateMode validateMode;

  if (forceDisplayFieldsError) {
    validateMode = AutovalidateMode.always;
  } else {
    validateMode = AutovalidateMode.onUserInteraction;
  }

  if (theme.customBuilders.containsKey(field.runtimeType)) {
    return theme.customBuilders[field.runtimeType]!(
      context,
      field: field,
      isFinal: isFinal,
      nextFieldId: nextFieldId,
    );
  }

  if (field is AFTextField) {
    return buildTextField(nextFieldId, field, isFinal);
  } else if (field is AFSearchModelField) {
    return buildSearchModelField(field, validateMode);
  } else if (field is AFSearchMultipleModelsField) {
    return buildSearchMultipleModelsField(field, validateMode);
  } else if (field is AFSelectField) {
    return buildSelectField(field);
  } else if (field is AFFileField) {
    return buildFileField(field);
  } else if (field is AFBooleanField) {
    return buildBooleanField(field);
  } else if (field is AFFormField) {
    return buildFormFieldWidget(field);
  } else if (field is AFMultipleFormField) {
    return buildMultipleFormFieldWidget(field);
  }

  throw Exception(
      'No builder found for field ${field.name} of type ${field.runtimeType}');
}