updateData method

FutureOr<void> updateData(
  1. BlocxFormEventUpdateData<E> event,
  2. Emitter<BlocxFormState<F, E>> emit
)
inherited

Handles a single field update event.

If the updated field is configured as a unique field, the update is delegated to BlocxUniqueFieldValidatorMixin. Otherwise, formData is updated and validation is run.

Implementation

FutureOr<void> updateData(
  BlocxFormEventUpdateData<E> event,
  Emitter<BlocxFormState<F, E>> emit,
) async {
  if (isUniqueFieldValidator &&
      (this as BlocxUniqueFieldValidatorMixin<F, P, E>).uniqueFieldKeys.contains(event.key)) {
    add(
      BlocxFormEventCheckUniqueValue(
        key: event.key,
        data: event.data,
      ),
    );
    return;
  }

  formData = await updateFormData(event.key, event.data);

  if (emitChangesOnUpdate) {
    emit(
      BlocxFormStateFormUpdated(
        step: stepIndex,
        formData: formData,
        errors: const {},
        fieldsFetchingInfo: const {},
        checkingUniqueFields: const {},
      ),
    );
  }

  emitState(emit);
}