TF-3385 Update empty trash and spam emails
This commit is contained in:
@@ -77,6 +77,8 @@ import 'package:tmail_ui_user/features/push_notification/presentation/websocket/
|
||||
import 'package:tmail_ui_user/features/push_notification/presentation/websocket/web_socket_queue_handler.dart';
|
||||
import 'package:tmail_ui_user/features/search/mailbox/presentation/search_mailbox_bindings.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/mark_as_multiple_email_read_state.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||
@@ -339,6 +341,16 @@ class MailboxController extends BaseMailboxController
|
||||
affectedMailboxId: reactionState.mailboxId,
|
||||
totalEmailsChanged: -reactionState.emailIds.length,
|
||||
);
|
||||
} else if (reactionState is EmptyTrashFolderSuccess) {
|
||||
_handleDeleteEmailsFromMailbox(
|
||||
affectedMailboxId: reactionState.mailboxId,
|
||||
totalEmailsChanged: -reactionState.emailIds.length,
|
||||
);
|
||||
} else if (reactionState is EmptySpamFolderSuccess) {
|
||||
_handleDeleteEmailsFromMailbox(
|
||||
affectedMailboxId: reactionState.mailboxId,
|
||||
totalEmailsChanged: -reactionState.emailIds.length,
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -66,6 +66,8 @@ import 'package:tmail_ui_user/features/search/email/presentation/model/search_mo
|
||||
import 'package:tmail_ui_user/features/search/email/presentation/search_email_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.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/mark_as_multiple_email_read_state.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/state/mark_as_star_multiple_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/state/search_email_state.dart';
|
||||
@@ -316,6 +318,16 @@ class SearchEmailController extends BaseController
|
||||
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,
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user