TF-2381 Fix duplicate searching result after load mre

(cherry picked from commit 1cebbf8495990e9eecd78500a6c08d116314d5dc)
This commit is contained in:
hieubt
2023-12-05 22:17:17 +07:00
committed by Dat H. Pham
parent d4f72b7d81
commit 1ad18e5ecc
3 changed files with 20 additions and 6 deletions
@@ -362,7 +362,12 @@ class SearchEmailController extends BaseController
void searchMoreEmailsAction() {
if (canSearchMore && session != null && accountId != null) {
final lastEmail = listResultSearch.last;
_updateSimpleSearchFilter(beforeOption: optionOf(lastEmail.receivedAt));
final firstEmail = listResultSearch.first;
if (emailSortOrderType.value == EmailSortOrderType.oldest) {
_updateSimpleSearchFilter(beforeOption: optionOf(firstEmail.receivedAt));
} else {
_updateSimpleSearchFilter(beforeOption: optionOf(lastEmail.receivedAt));
}
consumeState(_searchMoreEmailInteractor.execute(
session!,
@@ -384,7 +389,7 @@ class SearchEmailController extends BaseController
if (success.emailList.isNotEmpty) {
final resultEmailSearchList = success.emailList
.map((email) => email.toSearchPresentationEmail(mailboxDashBoardController.mapMailboxById))
.where((email) => !listResultSearch.contains(email))
.where((email) => listResultSearch.every((emailInCurrentList) => emailInCurrentList.id != email.id))
.toList()
.syncPresentationEmail(
mapMailboxById: mailboxDashBoardController.mapMailboxById,