selectIsFieldRequired method

bool selectIsFieldRequired(
  1. Field field
)

Implementation

bool selectIsFieldRequired(Field field) {
  // If field has no validation, it's not required
  if (field.validation == null) return false;
  // Check if field is conditionally required
  if (field.validation!.conditionalOn != null) {
    var conditionalField = field.validation!.conditionalOn!.field;
    var valuesList = field.validation!.conditionalOn!.values;
    // Handle indexed fields by matching index from the current field name
    if (field.name.contains('[')) {
      final indexMatch = RegExp(r'\[(\d+)\]').firstMatch(field.name);
      if (indexMatch != null) {
        final fieldIndex = indexMatch.group(1);
        conditionalField = conditionalField.replaceAll(
            RegExp(r'\[\{index\}\]|\[\d+\]'), '[$fieldIndex]');
      }
    }
    final conditionValue = values[conditionalField];
    final conditionMatches =
        valuesList.any((v) => v.toString() == conditionValue.toString());
    if (conditionMatches) {
      return field.validation!.required != false;
    }
  }
  // Check if field is required by default
  return field.validation!.required ?? false;
}