TF-2925 Fix change mailbox very quick when refreshing after any mail action make the message list is not showed correctly
This commit is contained in:
@@ -5,6 +5,7 @@ import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/model/email_filter.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart';
|
||||
@@ -39,18 +40,25 @@ class GetEmailsInMailboxInteractor {
|
||||
emailFilter: emailFilter,
|
||||
propertiesCreated: propertiesCreated,
|
||||
propertiesUpdated: propertiesUpdated)
|
||||
.map(_toGetEmailState);
|
||||
.map((emailResponse) => _toGetEmailState(
|
||||
emailResponse: emailResponse,
|
||||
currentMailboxId: emailFilter?.mailboxId
|
||||
));
|
||||
} catch (e) {
|
||||
yield Left(GetAllEmailFailure(e));
|
||||
}
|
||||
}
|
||||
|
||||
Either<Failure, Success> _toGetEmailState(EmailsResponse emailResponse) {
|
||||
Either<Failure, Success> _toGetEmailState({
|
||||
required EmailsResponse emailResponse,
|
||||
MailboxId? currentMailboxId,
|
||||
}) {
|
||||
final presentationEmailList = emailResponse.emailList
|
||||
?.map((email) => email.toPresentationEmail()).toList() ?? List.empty();
|
||||
|
||||
return Right<Failure, Success>(GetAllEmailSuccess(
|
||||
emailList: presentationEmailList,
|
||||
currentEmailState: emailResponse.state));
|
||||
currentEmailState: emailResponse.state,
|
||||
currentMailboxId: currentMailboxId));
|
||||
}
|
||||
}
|
||||
+11
-3
@@ -4,6 +4,7 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/model/email_filter.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart';
|
||||
@@ -39,18 +40,25 @@ class RefreshChangesEmailsInMailboxInteractor {
|
||||
propertiesCreated: propertiesCreated,
|
||||
propertiesUpdated: propertiesUpdated,
|
||||
emailFilter: emailFilter)
|
||||
.map(_toGetEmailState);
|
||||
.map((emailResponse) => _toGetEmailState(
|
||||
emailResponse: emailResponse,
|
||||
currentMailboxId: emailFilter?.mailboxId
|
||||
));
|
||||
} catch (e) {
|
||||
yield Left(RefreshChangesAllEmailFailure(e));
|
||||
}
|
||||
}
|
||||
|
||||
Either<Failure, Success> _toGetEmailState(EmailsResponse emailResponse) {
|
||||
Either<Failure, Success> _toGetEmailState({
|
||||
required EmailsResponse emailResponse,
|
||||
MailboxId? currentMailboxId
|
||||
}) {
|
||||
final presentationEmailList = emailResponse.emailList
|
||||
?.map((email) => email.toPresentationEmail()).toList() ?? List.empty();
|
||||
|
||||
return Right<Failure, Success>(RefreshChangesAllEmailSuccess(
|
||||
emailList: presentationEmailList,
|
||||
currentEmailState: emailResponse.state));
|
||||
currentEmailState: emailResponse.state,
|
||||
currentMailboxId: currentMailboxId));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user