sortIds method

List<double> sortIds(
  1. Map<double, T> rowsById,
  2. List<double> idsToSort,
  3. SortColumn sortColumn,
  4. List<DataGridColumn<T>> columns,
)

Implementation

List<double> sortIds(
  Map<double, T> rowsById,
  List<double> idsToSort,
  SortColumn sortColumn,
  List<DataGridColumn<T>> columns,
) {
  final sortedIds = List<double>.from(idsToSort);
  final column = columns.firstWhere((c) => c.id == sortColumn.columnId);

  sortedIds.sort((aId, bId) {
    final aValue = _getCellValue(rowsById[aId]!, column);
    final bValue = _getCellValue(rowsById[bId]!, column);

    final comparison = _compareValues(aValue, bValue);

    if (comparison != 0) {
      return sortColumn.direction == SortDirection.ascending
          ? comparison
          : -comparison;
    }
    return 0;
  });

  return sortedIds;
}