TF-3385 Update empty trash and spam emails

This commit is contained in:
DatDang
2025-01-02 09:57:56 +07:00
committed by Dat H. Pham
parent 9660b40cd1
commit f1613a55ce
7 changed files with 45 additions and 6 deletions
@@ -8,11 +8,12 @@ class EmptySpamFolderLoading extends LoadingState {}
class EmptySpamFolderSuccess extends UIState {
final List<EmailId> emailIds;
final MailboxId? mailboxId;
EmptySpamFolderSuccess(this.emailIds);
EmptySpamFolderSuccess(this.emailIds, this.mailboxId);
@override
List<Object?> get props => [emailIds];
List<Object?> get props => [emailIds, mailboxId];
}
class EmptySpamFolderFailure extends FeatureFailure {
@@ -1,17 +1,19 @@
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';
class EmptyTrashFolderLoading extends LoadingState {}
class EmptyTrashFolderSuccess extends UIState {
final List<EmailId> emailIds;
final MailboxId? mailboxId;
EmptyTrashFolderSuccess(this.emailIds);
EmptyTrashFolderSuccess(this.emailIds, this.mailboxId);
@override
List<Object?> get props => [emailIds];
List<Object?> get props => [emailIds, mailboxId];
}
class EmptyTrashFolderFailure extends FeatureFailure {
@@ -32,7 +32,7 @@ class EmptySpamFolderInteractor {
totalEmails,
onProgressController
);
yield Right<Failure, Success>(EmptySpamFolderSuccess(emailIdDeleted));
yield Right<Failure, Success>(EmptySpamFolderSuccess(emailIdDeleted, spamMailboxId));
} catch (e) {
yield Left<Failure, Success>(EmptySpamFolderFailure(e));
}
@@ -32,7 +32,7 @@ class EmptyTrashFolderInteractor {
totalEmails,
onProgressController
);
yield Right<Failure, Success>(EmptyTrashFolderSuccess(emailIdDeleted,));
yield Right<Failure, Success>(EmptyTrashFolderSuccess(emailIdDeleted, trashMailboxId));
} catch (e) {
yield Left<Failure, Success>(EmptyTrashFolderFailure(e));
}
@@ -49,6 +49,8 @@ import 'package:tmail_ui_user/features/thread/domain/model/email_filter.dart';
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dart';
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
import 'package:tmail_ui_user/features/thread/domain/state/empty_spam_folder_state.dart';
import 'package:tmail_ui_user/features/thread/domain/state/empty_trash_folder_state.dart';
import 'package:tmail_ui_user/features/thread/domain/state/get_all_email_state.dart';
import 'package:tmail_ui_user/features/thread/domain/state/get_email_by_id_state.dart';
import 'package:tmail_ui_user/features/thread/domain/state/load_more_emails_state.dart';
@@ -395,6 +397,16 @@ class ThreadController extends BaseController with EmailActionController {
emailIds: reactionState.emailIds,
affectedMailboxId: reactionState.mailboxId,
);
} else if (reactionState is EmptyTrashFolderSuccess) {
mailboxDashBoardController.handleDeleteEmailsInMailbox(
emailIds: reactionState.emailIds,
affectedMailboxId: reactionState.mailboxId,
);
} else if (reactionState is EmptySpamFolderSuccess) {
mailboxDashBoardController.handleDeleteEmailsInMailbox(
emailIds: reactionState.emailIds,
affectedMailboxId: reactionState.mailboxId,
);
}
});
}