initializeForm method

void initializeForm(
  1. String componentName,
  2. FormDefinition formJson,
  3. Map<String, dynamic>? existingData
)

Implementation

void initializeForm(String componentName, FormDefinition formJson,
    Map<String, dynamic>? existingData) async {
  formDefinitions[componentName] = formJson;
  values.clear();
  errors.clear();
  touched.clear();
  fieldsDisabled.clear();

  await Future.delayed(Duration(milliseconds: 100));

  int startIndex = formJson.startWithIndex ?? 0;

  for (int index = 0; index <= startIndex; index++) {
    allFields.addAll(extractFields(formJson, index: index));
  }

  if (existingData != null) {
    values.addAll(flattenObject(existingData));
  }

  // Set default values & disabled fields
  for (var field in allFields) {
    await processFieldLogic(field);
  }

  notifyListeners();
}