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/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/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/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_multiple_email_read_state.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||||
@@ -339,6 +341,16 @@ class MailboxController extends BaseMailboxController
|
|||||||
affectedMailboxId: reactionState.mailboxId,
|
affectedMailboxId: reactionState.mailboxId,
|
||||||
totalEmailsChanged: -reactionState.emailIds.length,
|
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/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/constants/thread_constants.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/search_query.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_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/mark_as_star_multiple_email_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/search_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,
|
emailIds: reactionState.emailIds,
|
||||||
affectedMailboxId: reactionState.mailboxId,
|
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 {
|
class EmptySpamFolderSuccess extends UIState {
|
||||||
|
|
||||||
final List<EmailId> emailIds;
|
final List<EmailId> emailIds;
|
||||||
|
final MailboxId? mailboxId;
|
||||||
|
|
||||||
EmptySpamFolderSuccess(this.emailIds);
|
EmptySpamFolderSuccess(this.emailIds, this.mailboxId);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [emailIds];
|
List<Object?> get props => [emailIds, mailboxId];
|
||||||
}
|
}
|
||||||
|
|
||||||
class EmptySpamFolderFailure extends FeatureFailure {
|
class EmptySpamFolderFailure extends FeatureFailure {
|
||||||
|
|||||||
@@ -1,17 +1,19 @@
|
|||||||
import 'package:core/presentation/state/failure.dart';
|
import 'package:core/presentation/state/failure.dart';
|
||||||
import 'package:core/presentation/state/success.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/email/email.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||||
|
|
||||||
class EmptyTrashFolderLoading extends LoadingState {}
|
class EmptyTrashFolderLoading extends LoadingState {}
|
||||||
|
|
||||||
class EmptyTrashFolderSuccess extends UIState {
|
class EmptyTrashFolderSuccess extends UIState {
|
||||||
|
|
||||||
final List<EmailId> emailIds;
|
final List<EmailId> emailIds;
|
||||||
|
final MailboxId? mailboxId;
|
||||||
|
|
||||||
EmptyTrashFolderSuccess(this.emailIds);
|
EmptyTrashFolderSuccess(this.emailIds, this.mailboxId);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [emailIds];
|
List<Object?> get props => [emailIds, mailboxId];
|
||||||
}
|
}
|
||||||
|
|
||||||
class EmptyTrashFolderFailure extends FeatureFailure {
|
class EmptyTrashFolderFailure extends FeatureFailure {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ class EmptySpamFolderInteractor {
|
|||||||
totalEmails,
|
totalEmails,
|
||||||
onProgressController
|
onProgressController
|
||||||
);
|
);
|
||||||
yield Right<Failure, Success>(EmptySpamFolderSuccess(emailIdDeleted));
|
yield Right<Failure, Success>(EmptySpamFolderSuccess(emailIdDeleted, spamMailboxId));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
yield Left<Failure, Success>(EmptySpamFolderFailure(e));
|
yield Left<Failure, Success>(EmptySpamFolderFailure(e));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ class EmptyTrashFolderInteractor {
|
|||||||
totalEmails,
|
totalEmails,
|
||||||
onProgressController
|
onProgressController
|
||||||
);
|
);
|
||||||
yield Right<Failure, Success>(EmptyTrashFolderSuccess(emailIdDeleted,));
|
yield Right<Failure, Success>(EmptyTrashFolderSuccess(emailIdDeleted, trashMailboxId));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
yield Left<Failure, Success>(EmptyTrashFolderFailure(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/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/get_email_request.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/search_query.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_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/get_email_by_id_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/load_more_emails_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,
|
emailIds: reactionState.emailIds,
|
||||||
affectedMailboxId: reactionState.mailboxId,
|
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