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/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/email/read_actions.dart';
import 'package:tmail_ui_user/features/email/domain/model/mark_read_action.dart';
@@ -8,15 +9,17 @@ class MarkAsEmailReadSuccess extends UIState {
final EmailId emailId;
final ReadActions readActions;
final MarkReadAction markReadAction;
final MailboxId? mailboxId;
MarkAsEmailReadSuccess(
this.emailId,
this.readActions,
this.markReadAction,
this.mailboxId,
);
@override
List<Object?> get props => [emailId, readActions, markReadAction];
List<Object?> get props => [emailId, readActions, markReadAction, mailboxId];
}
class MarkAsEmailReadFailure extends FeatureFailure {
@@ -1,14 +1,16 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:model/email/mark_star_action.dart';
class MarkAsStarEmailSuccess extends UIState {
final MarkStarAction markStarAction;
final EmailId emailId;
MarkAsStarEmailSuccess(this.markStarAction);
MarkAsStarEmailSuccess(this.markStarAction, this.emailId);
@override
List<Object?> get props => [markStarAction];
List<Object?> get props => [markStarAction, emailId];
}
class MarkAsStarEmailFailure extends FeatureFailure {
@@ -4,6 +4,7 @@ import 'package:dartz/dartz.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/email/read_actions.dart';
import 'package:tmail_ui_user/features/email/domain/model/mark_read_action.dart';
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
@@ -20,6 +21,7 @@ class MarkAsEmailReadInteractor {
EmailId emailId,
ReadActions readAction,
MarkReadAction markReadAction,
MailboxId? mailboxId,
) async* {
try {
final result = await _emailRepository.markAsRead(
@@ -36,7 +38,8 @@ class MarkAsEmailReadInteractor {
result.emailIdsSuccess.first,
readAction,
markReadAction,
));
mailboxId,
));
}
} catch (e) {
yield Left(MarkAsEmailReadFailure(readAction, exception: e));
@@ -26,7 +26,7 @@ class MarkAsStarEmailInteractor {
[emailId],
markStarAction,
);
yield Right(MarkAsStarEmailSuccess(markStarAction));
yield Right(MarkAsStarEmailSuccess(markStarAction, emailId));
} catch (e) {
yield Left(MarkAsStarEmailFailure(markStarAction, exception: e));
}