normalizeCheckpointDefectsForDisplay function

List<CheckPointDefect> normalizeCheckpointDefectsForDisplay(
  1. List<CheckPointDefect> defects
)

Implementation

List<CheckPointDefect> normalizeCheckpointDefectsForDisplay(
    List<CheckPointDefect> defects) {
  CheckPointDefect? preferredNoDefect;
  for (final defect in defects.where(isNoDefectMarker)) {
    if (preferredNoDefect == null ||
        _preferNoDefectMarker(defect, preferredNoDefect)) {
      preferredNoDefect = defect;
    }
  }

  if (preferredNoDefect == null) return defects;

  final visibleDefects = <CheckPointDefect>[];
  var noDefectAdded = false;
  for (final defect in defects) {
    if (!isNoDefectMarker(defect)) {
      visibleDefects.add(defect);
    } else if (!noDefectAdded) {
      visibleDefects.add(preferredNoDefect);
      noDefectAdded = true;
    }
  }
  return visibleDefects;
}