vRequiredOn<T> function

DraftModeValidator<T> vRequiredOn<T>(
  1. dynamic compareAttribute
)

Returns a validator that requires a value when compareAttribute is true.

Implementation

DraftModeValidator<T> vRequiredOn<T>(dynamic compareAttribute) {
  return _typedValidator<T>(
    type: DraftModeValidatorType.requiredOn,
    payload: compareAttribute,
    delegate: (DraftModeValidationValueContext? context, T? value) {
      final compareValue = context?.read(compareAttribute);
      final requiresValue = compareValue is bool && compareValue;
      if (!requiresValue) {
        return null;
      }
      if (value == null) {
        return const DraftModeValidationRequired();
      }
      if (value is String && value.trim().isEmpty) {
        return const DraftModeValidationRequired();
      }
      return null;
    },
  );
}