TF-3298 Fix blink when refresh email list (#3299)

This commit is contained in:
Dat Vu
2024-11-25 18:24:28 +07:00
committed by Dat H. Pham
parent 63db04a8e3
commit 8963ce7a61
5 changed files with 399 additions and 88 deletions
@@ -17,23 +17,24 @@ extension ListEmailExtension on List<Email> {
};
}
List<Email> sortingByOrderOfIdList(List<Id> ids) {
if (ids.length != length) {
return this;
}
List<Email> sortEmailsById(List<Id> referenceIds) {
final indexMap = {
for (var i = 0; i < referenceIds.length; i++)
referenceIds[i]: i
};
sort((email1, email2) {
final id1 = email1.id?.id;
final id2 = email2.id?.id;
final emailId1 = email1.id?.id;
final emailId2 = email2.id?.id;
if (id1 == null || id2 == null) {
return 0;
if (emailId1 == null || emailId2 == null) {
return emailId1 == null ? 1 : -1;
}
final index1 = ids.indexWhere((id) => id == id1);
final index2 = ids.indexWhere((id) => id == id2);
final indexEmail1 = indexMap[emailId1] ?? double.maxFinite;
final indexEmail2 = indexMap[emailId2] ?? double.maxFinite;
return index1.compareTo(index2);
return indexEmail1.compareTo(indexEmail2);
});
return this;