updateReadOnlyStatus method

void updateReadOnlyStatus()

Implementation

void updateReadOnlyStatus() {
  if (_parentComponents != null) {
    bool? enableComponent;
    for (final parentComponent in _parentComponents ?? <ComponentLinker>[]) {
      if (parentComponent.disabledUntilParentIsValid) {
        if (!parentComponent.linkedComponent.hasValidData) {
          enableComponent = false;
          _error.value = parentComponent.disabledError ??
              '${parentComponent.linkedComponent._formFieldSettings.value.label} invalid:${parentComponent.linkedComponent.componentData.validator.validate(parentComponent.linkedComponent.fetchData()) ?? ''}';
          break;
        } else {
          enableComponent = true;
        }
      }
    }

    if (enableComponent != null) {
      _formFieldSettings.value = _formFieldSettings.value.copyWith(
        enabled: enableComponent,
      );
      if (enableComponent) {
        _error.value = null;
      }
    }
  }
}