TF-4179 Sort label list by alphabet

This commit is contained in:
dab246
2025-12-08 16:59:39 +07:00
committed by Dat H. Pham
parent 07fd854175
commit f5bddecba6
6 changed files with 24 additions and 2 deletions
@@ -39,4 +39,10 @@ extension LabelExtension on Label {
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),
);
}
}
+1
View File
@@ -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/extensions/label_extension.dart';
export 'package:labels/extensions/list_label_extension.dart';
+1 -1
View File
@@ -170,7 +170,7 @@ packages:
source: hosted
version: "4.11.0"
collection:
dependency: transitive
dependency: "direct main"
description:
name: collection
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
+2
View File
@@ -29,6 +29,8 @@ dependencies:
quiver: 3.2.1
collection: 1.19.1
dev_dependencies:
flutter_test:
sdk: flutter
@@ -3,6 +3,7 @@ import 'package:core/presentation/state/success.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.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/utils/labels_constants.dart';
import 'package:model/mailbox/expand_mode.dart';
@@ -43,7 +44,7 @@ class LabelController extends BaseController {
@override
void handleSuccessViewState(Success success) {
if (success is GetAllLabelSuccess) {
labels.value = success.labels;
labels.value = success.labels..sortByAlphabetically();
} else {
super.handleSuccessViewState(success);
}