run method
Сортирует данные.
Если sort указан, то перезаписывает установленную сортировку и применяет к фильтрованным данным.
Если sort не указан и есть текущая установленная сортировка, то применяет текущую сортировку.
Если sort не указан и нет текущей установленной сортировки, то ничего не происходит.
Implementation
@override
SortUseCaseResult<T> run() {
final targetSort = sort;
if (data.isNotEmpty) {
final sorted = List<T>.from(data);
sorted.sort((a, b) =>
targetSort.comparator(a, b) * targetSort.direction.compareValue);
return SortUseCaseResult(
originalData: data,
sortedData: sorted,
appliedSort: targetSort,
);
}
return SortUseCaseResult(
originalData: data,
sortedData: data,
);
}