TF-2528 Sorting emails by order ids list of Email/query

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2024-01-31 12:45:27 +07:00
committed by Dat H. Pham
parent d834a512c1
commit a5665416b1
3 changed files with 50 additions and 9 deletions
@@ -1,5 +1,6 @@
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/core/user_name.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:model/extensions/account_id_extensions.dart';
@@ -15,4 +16,23 @@ extension ListEmailExtension on List<Email> {
TupleKey(email.id!.asString, accountId.asString, userName.value).encodeKey : email.toEmailCache()
};
}
List<Email> sortingByOrderOfIdList(List<Id> ids) {
if (ids.length != length) {
return this;
}
sort((email1, email2) {
final id1 = email1.id?.id;
final id2 = email2.id?.id;
if (id1 == null || id2 == null) {
return 0;
}
final sortIndex = ids.indexOf(id1) - ids.indexOf(id2);
return sortIndex;
});
return this;
}
}