TF-4179 Sort label list by alphabet
This commit is contained in:
@@ -39,4 +39,10 @@ extension LabelExtension on Label {
|
|||||||
color: color ?? this.color,
|
color: color ?? this.color,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int compareAlphabetically(Label otherLabel) {
|
||||||
|
return safeDisplayName
|
||||||
|
.toLowerCase()
|
||||||
|
.compareTo(otherLabel.safeDisplayName.toLowerCase());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
import 'package:collection/collection.dart';
|
||||||
|
import 'package:labels/extensions/label_extension.dart';
|
||||||
|
import 'package:labels/model/label.dart';
|
||||||
|
|
||||||
|
extension ListLabelExtension on List<Label> {
|
||||||
|
void sortByAlphabetically() {
|
||||||
|
sortByCompare<Label>(
|
||||||
|
(label) => label,
|
||||||
|
(label, otherLabel) => label.compareAlphabetically(otherLabel),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,3 +11,4 @@ export 'package:labels/method/changes/changes_label_method.dart';
|
|||||||
export 'package:labels/method/changes/changes_label_response.dart';
|
export 'package:labels/method/changes/changes_label_response.dart';
|
||||||
|
|
||||||
export 'package:labels/extensions/label_extension.dart';
|
export 'package:labels/extensions/label_extension.dart';
|
||||||
|
export 'package:labels/extensions/list_label_extension.dart';
|
||||||
|
|||||||
+1
-1
@@ -170,7 +170,7 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "4.11.0"
|
version: "4.11.0"
|
||||||
collection:
|
collection:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: collection
|
name: collection
|
||||||
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
|
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ dependencies:
|
|||||||
|
|
||||||
quiver: 3.2.1
|
quiver: 3.2.1
|
||||||
|
|
||||||
|
collection: 1.19.1
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import 'package:core/presentation/state/success.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||||
|
import 'package:labels/extensions/list_label_extension.dart';
|
||||||
import 'package:labels/model/label.dart';
|
import 'package:labels/model/label.dart';
|
||||||
import 'package:labels/utils/labels_constants.dart';
|
import 'package:labels/utils/labels_constants.dart';
|
||||||
import 'package:model/mailbox/expand_mode.dart';
|
import 'package:model/mailbox/expand_mode.dart';
|
||||||
@@ -43,7 +44,7 @@ class LabelController extends BaseController {
|
|||||||
@override
|
@override
|
||||||
void handleSuccessViewState(Success success) {
|
void handleSuccessViewState(Success success) {
|
||||||
if (success is GetAllLabelSuccess) {
|
if (success is GetAllLabelSuccess) {
|
||||||
labels.value = success.labels;
|
labels.value = success.labels..sortByAlphabetically();
|
||||||
} else {
|
} else {
|
||||||
super.handleSuccessViewState(success);
|
super.handleSuccessViewState(success);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user