TF-3385 Fix mark as read not work properly
This commit is contained in:
@@ -9,16 +9,16 @@ class LoadingMarkAsMultipleEmailReadAll extends UIState {}
|
||||
class MarkAsMultipleEmailReadAllSuccess extends UIState {
|
||||
final List<EmailId> emailIds;
|
||||
final ReadActions readActions;
|
||||
final MailboxId? mailboxId;
|
||||
final Map<MailboxId, List<EmailId>> markSuccessEmailIdsByMailboxId;
|
||||
|
||||
MarkAsMultipleEmailReadAllSuccess(
|
||||
this.emailIds,
|
||||
this.readActions,
|
||||
this.mailboxId,
|
||||
this.markSuccessEmailIdsByMailboxId,
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [emailIds, readActions, mailboxId];
|
||||
List<Object?> get props => [emailIds, readActions, markSuccessEmailIdsByMailboxId];
|
||||
}
|
||||
|
||||
class MarkAsMultipleEmailReadAllFailure extends FeatureFailure {
|
||||
@@ -33,16 +33,16 @@ class MarkAsMultipleEmailReadAllFailure extends FeatureFailure {
|
||||
class MarkAsMultipleEmailReadHasSomeEmailFailure extends UIState {
|
||||
final List<EmailId> successEmailIds;
|
||||
final ReadActions readActions;
|
||||
final MailboxId? mailboxId;
|
||||
final Map<MailboxId, List<EmailId>> markSuccessEmailIdsByMailboxId;
|
||||
|
||||
MarkAsMultipleEmailReadHasSomeEmailFailure(
|
||||
this.successEmailIds,
|
||||
this.readActions,
|
||||
this.mailboxId,
|
||||
this.markSuccessEmailIdsByMailboxId,
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [successEmailIds, readActions, mailboxId];
|
||||
List<Object?> get props => [successEmailIds, readActions, markSuccessEmailIdsByMailboxId];
|
||||
}
|
||||
|
||||
class MarkAsMultipleEmailReadFailure extends FeatureFailure {
|
||||
|
||||
@@ -19,7 +19,7 @@ class MarkAsMultipleEmailReadInteractor {
|
||||
AccountId accountId,
|
||||
List<EmailId> emailIds,
|
||||
ReadActions readAction,
|
||||
MailboxId? mailboxId,
|
||||
Map<MailboxId, List<EmailId>> emailIdsByMailboxId,
|
||||
) async* {
|
||||
try {
|
||||
yield Right(LoadingMarkAsMultipleEmailReadAll());
|
||||
@@ -30,12 +30,18 @@ class MarkAsMultipleEmailReadInteractor {
|
||||
emailIds,
|
||||
readAction,
|
||||
);
|
||||
final markSuccessEmailIdsByMailboxId = emailIdsByMailboxId.map(
|
||||
(key, value) => MapEntry(
|
||||
key,
|
||||
value.where(result.emailIdsSuccess.contains).toList(),
|
||||
),
|
||||
);
|
||||
|
||||
if (emailIds.length == result.emailIdsSuccess.length) {
|
||||
yield Right(MarkAsMultipleEmailReadAllSuccess(
|
||||
result.emailIdsSuccess,
|
||||
readAction,
|
||||
mailboxId,
|
||||
markSuccessEmailIdsByMailboxId,
|
||||
));
|
||||
} else if (result.emailIdsSuccess.isEmpty) {
|
||||
yield Left(MarkAsMultipleEmailReadAllFailure(readAction));
|
||||
@@ -43,7 +49,7 @@ class MarkAsMultipleEmailReadInteractor {
|
||||
yield Right(MarkAsMultipleEmailReadHasSomeEmailFailure(
|
||||
result.emailIdsSuccess,
|
||||
readAction,
|
||||
mailboxId,
|
||||
markSuccessEmailIdsByMailboxId,
|
||||
));
|
||||
}
|
||||
} catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user