onInputBlur method

void onInputBlur(
  1. String? v
)

Implementation

void onInputBlur(String? v) {
  if (v == null) {
    value = 0;
  } else {
    var newValue = 0;
    try {
      newValue = int.parse(v);
      if (newValue > max) throw FormatException('Value too large!');
      if (newValue < min) throw FormatException('Value too small');
      if (step != 0) {
        while (newValue % step != 0) {
          newValue++;
        }
      }
      value = newValue;
    } on FormatException catch (e) {
      print(e);
      value ??= 0;
      // Reset the value
      if (value! > min) {
        if (value == max) {
          value = min;
          Future<void>.delayed(Duration(milliseconds: 0)).then((_) {
            value = max;
            if (_onChange != null) {
              _onChange!(value!);
            }
          });
        } else {
          value = max;
        }
      } else {
        if (value == min) {
          value = max;
          Future<void>.delayed(Duration(milliseconds: 0)).then((_) {
            value = min;
            if (_onChange != null) {
              _onChange!(value!);
            }
          });
        } else {
          value = min;
        }
      }
    }
  }
  if (_onChange != null) {
    _onChange!(value!);
  }
}