sortSelectedFirst<T> static method
Implementation
static Comparator<T> sortSelectedFirst<T>({
required bool Function(T) isSelected,
Comparator<T>? comparator,
}) {
int selectedFirstComparator(a, b) {
final aIsSelected = isSelected(a);
final bIsSelected = isSelected(b);
if (aIsSelected && bIsSelected) {
return 0;
} else if (aIsSelected && !bIsSelected) {
return -1;
} else if (!aIsSelected && bIsSelected) {
return 1;
} else {
return 0;
}
}
if (comparator != null) {
return (a, b) {
final isSelected = selectedFirstComparator(a, b);
if (isSelected == 0) {
return comparator(a, b);
}
return isSelected;
};
}
return selectedFirstComparator;
}