applySort method

List<Map<String, Object?>?> applySort(
  1. List<Map<String, Object?>?> data
)

Implementation

List<Map<String, Object?>?> applySort(List<Map<String, Object?>?> data) {
  if (mapSortation.isEmpty) {
    return data;
  }

  final fieldName = mapSortation.keys.first;
  final sortMode = mapSortation[fieldName];

  List<Map<String, Object?>?> sortedData = List.from(data);

  sortedData.sort((a, b) {
    switch (sortMode) {
      case ESortMode.smallestToLargest:
        return _compareTo(a?[fieldName], b?[fieldName]);
      case ESortMode.largestToSmallest:
        return _compareTo(b?[fieldName], a?[fieldName]);
      default:
    }

    throw FilterWidgetException('SortMode is invalid');
  });

  return sortedData;
}