calculatePosition static method

FlutterTagPosition calculatePosition(
  1. FlutterTagPosition? position
)

Recalculates the position of the badge, ensuring all values are non-negative. If no position is provided, it defaults to top-right corner with end: 0, top: 0.

Implementation

static FlutterTagPosition calculatePosition(FlutterTagPosition? position) {
  if (position == null) {
    return FlutterTagPosition.custom(end: 0, top: 0);
  }

  double? getUpdatedPosition(double? digit) {
    if (digit == null) {
      return null;
    }
    return !digit.isNegative ? digit : 0;
  }

  return FlutterTagPosition.custom(
    start: getUpdatedPosition(position.start),
    end: getUpdatedPosition(position.end),
    top: getUpdatedPosition(position.top),
    bottom: getUpdatedPosition(position.bottom),
  );
}