TF-3385 Update mark as read and star

This commit is contained in:
DatDang
2024-12-31 10:12:43 +07:00
committed by Dat H. Pham
parent a94513efb4
commit 8f5168ec6b
24 changed files with 521 additions and 32 deletions
@@ -1,6 +1,7 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:tmail_ui_user/features/base/state/ui_action_state.dart';
@@ -24,8 +25,10 @@ class UpdatingMarkAsMailboxReadState extends UIState {
class MarkAsMailboxReadAllSuccess extends UIActionState {
final String mailboxDisplayName;
final MailboxId mailboxId;
MarkAsMailboxReadAllSuccess(this.mailboxDisplayName,
this.mailboxId,
{
jmap.State? currentEmailState,
jmap.State? currentMailboxState,
@@ -35,6 +38,7 @@ class MarkAsMailboxReadAllSuccess extends UIActionState {
@override
List<Object?> get props => [
mailboxDisplayName,
mailboxId,
...super.props
];
}
@@ -43,16 +47,22 @@ class MarkAsMailboxReadHasSomeEmailFailure extends UIState {
final String mailboxDisplayName;
final int countEmailsRead;
final MailboxId mailboxId;
final List<EmailId> successEmailIds;
MarkAsMailboxReadHasSomeEmailFailure(
this.mailboxDisplayName,
this.countEmailsRead,
this.mailboxId,
this.successEmailIds,
);
@override
List<Object?> get props => [
mailboxDisplayName,
countEmailsRead,
mailboxId,
successEmailIds,
];
}
@@ -34,11 +34,13 @@ class MarkAsMailboxReadInteractor {
onProgressController);
if (totalEmailUnread == listEmails.length) {
yield Right(MarkAsMailboxReadAllSuccess(mailboxDisplayName));
yield Right(MarkAsMailboxReadAllSuccess(mailboxDisplayName, mailboxId));
} else if (listEmails.isNotEmpty) {
yield Right(MarkAsMailboxReadHasSomeEmailFailure(
mailboxDisplayName,
listEmails.length,
mailboxId,
listEmails,
));
} else {
yield Left(MarkAsMailboxReadAllFailure(mailboxDisplayName: mailboxDisplayName));