From 0f675c2270132e02fd4b3212d3dfb67de86232d9 Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 18 Jan 2023 14:08:08 +0700 Subject: [PATCH] Fix can not refresh change list mailbox and email after take actions with email in succession --- .../state/delete_multiple_emails_permanently_state.dart | 2 ++ .../email/domain/state/move_to_mailbox_state.dart | 2 ++ .../delete_multiple_emails_permanently_interactor.dart | 2 ++ .../email/domain/usecases/move_to_mailbox_interactor.dart | 2 ++ .../mailbox/domain/state/create_new_mailbox_state.dart | 2 ++ .../domain/state/delete_multiple_mailbox_state.dart | 3 +++ lib/features/mailbox/domain/state/move_mailbox_state.dart | 8 +------- .../mailbox/domain/state/rename_mailbox_state.dart | 2 ++ .../mailbox/domain/state/search_mailbox_state.dart | 2 ++ .../domain/usecases/create_new_mailbox_interactor.dart | 2 ++ .../usecases/delete_multiple_mailbox_interactor.dart | 2 ++ .../mailbox/domain/usecases/move_mailbox_interactor.dart | 2 ++ .../domain/usecases/rename_mailbox_interactor.dart | 2 ++ .../domain/usecases/search_mailbox_interactor.dart | 2 ++ .../domain/state/mark_as_multiple_email_read_state.dart | 2 ++ .../domain/state/mark_as_star_multiple_email_state.dart | 2 ++ .../state/move_multiple_email_to_mailbox_state.dart | 2 ++ .../usecases/mark_as_multiple_email_read_interactor.dart | 2 ++ .../usecases/mark_as_star_multiple_email_interactor.dart | 2 ++ .../move_multiple_email_to_mailbox_interactor.dart | 2 ++ 20 files changed, 40 insertions(+), 7 deletions(-) diff --git a/lib/features/email/domain/state/delete_multiple_emails_permanently_state.dart b/lib/features/email/domain/state/delete_multiple_emails_permanently_state.dart index 4ca7e2e93..9b1c014ad 100644 --- a/lib/features/email/domain/state/delete_multiple_emails_permanently_state.dart +++ b/lib/features/email/domain/state/delete_multiple_emails_permanently_state.dart @@ -3,6 +3,8 @@ import 'package:jmap_dart_client/jmap/core/state.dart' as jmap; import 'package:jmap_dart_client/jmap/mail/email/email.dart'; import 'package:tmail_ui_user/features/base/state/ui_action_state.dart'; +class LoadingDeleteMultipleEmailsPermanentlyAll extends UIState {} + class DeleteMultipleEmailsPermanentlyAllSuccess extends UIActionState { List emailIds; diff --git a/lib/features/email/domain/state/move_to_mailbox_state.dart b/lib/features/email/domain/state/move_to_mailbox_state.dart index f687ee7d1..482c2928d 100644 --- a/lib/features/email/domain/state/move_to_mailbox_state.dart +++ b/lib/features/email/domain/state/move_to_mailbox_state.dart @@ -6,6 +6,8 @@ import 'package:model/model.dart'; import 'package:tmail_ui_user/features/base/state/ui_action_state.dart'; import 'package:tmail_ui_user/features/email/domain/model/move_action.dart'; +class LoadingMoveToMailbox extends UIState {} + class MoveToMailboxSuccess extends UIActionState { final EmailId emailId; final MailboxId currentMailboxId; diff --git a/lib/features/email/domain/usecases/delete_multiple_emails_permanently_interactor.dart b/lib/features/email/domain/usecases/delete_multiple_emails_permanently_interactor.dart index 00ab0869f..554e43be9 100644 --- a/lib/features/email/domain/usecases/delete_multiple_emails_permanently_interactor.dart +++ b/lib/features/email/domain/usecases/delete_multiple_emails_permanently_interactor.dart @@ -14,6 +14,8 @@ class DeleteMultipleEmailsPermanentlyInteractor { Stream> execute(AccountId accountId, List emailIds) async* { try { + yield Right(LoadingDeleteMultipleEmailsPermanentlyAll()); + final listState = await Future.wait([ _mailboxRepository.getMailboxState(), _emailRepository.getEmailState(), diff --git a/lib/features/email/domain/usecases/move_to_mailbox_interactor.dart b/lib/features/email/domain/usecases/move_to_mailbox_interactor.dart index 28ac696d3..7a9588483 100644 --- a/lib/features/email/domain/usecases/move_to_mailbox_interactor.dart +++ b/lib/features/email/domain/usecases/move_to_mailbox_interactor.dart @@ -14,6 +14,8 @@ class MoveToMailboxInteractor { Stream> execute(AccountId accountId, MoveToMailboxRequest moveRequest) async* { try { + yield Right(LoadingMoveToMailbox()); + final listState = await Future.wait([ _mailboxRepository.getMailboxState(), _emailRepository.getEmailState(), diff --git a/lib/features/mailbox/domain/state/create_new_mailbox_state.dart b/lib/features/mailbox/domain/state/create_new_mailbox_state.dart index 976730510..e42828687 100644 --- a/lib/features/mailbox/domain/state/create_new_mailbox_state.dart +++ b/lib/features/mailbox/domain/state/create_new_mailbox_state.dart @@ -3,6 +3,8 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; import 'package:tmail_ui_user/features/base/state/ui_action_state.dart'; import 'package:jmap_dart_client/jmap/core/state.dart' as jmap; +class LoadingCreateNewMailbox extends UIState {} + class CreateNewMailboxSuccess extends UIActionState { final Mailbox newMailbox; diff --git a/lib/features/mailbox/domain/state/delete_multiple_mailbox_state.dart b/lib/features/mailbox/domain/state/delete_multiple_mailbox_state.dart index be34b8462..33627d209 100644 --- a/lib/features/mailbox/domain/state/delete_multiple_mailbox_state.dart +++ b/lib/features/mailbox/domain/state/delete_multiple_mailbox_state.dart @@ -1,8 +1,11 @@ import 'package:core/presentation/state/failure.dart'; +import 'package:core/presentation/state/success.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; import 'package:jmap_dart_client/jmap/core/state.dart' as jmap; import 'package:tmail_ui_user/features/base/state/ui_action_state.dart'; +class LoadingDeleteMultipleMailboxAll extends UIState {} + class DeleteMultipleMailboxAllSuccess extends UIActionState { final List listMailboxIdDeleted; diff --git a/lib/features/mailbox/domain/state/move_mailbox_state.dart b/lib/features/mailbox/domain/state/move_mailbox_state.dart index e33edfaf2..8d776f468 100644 --- a/lib/features/mailbox/domain/state/move_mailbox_state.dart +++ b/lib/features/mailbox/domain/state/move_mailbox_state.dart @@ -4,13 +4,7 @@ import 'package:tmail_ui_user/features/base/state/ui_action_state.dart'; import 'package:tmail_ui_user/features/email/domain/model/move_action.dart'; import 'package:jmap_dart_client/jmap/core/state.dart' as jmap; -class MoveMailboxLoading extends UIState { - - MoveMailboxLoading(); - - @override - List get props => []; -} +class LoadingMoveMailbox extends UIState {} class MoveMailboxSuccess extends UIActionState { diff --git a/lib/features/mailbox/domain/state/rename_mailbox_state.dart b/lib/features/mailbox/domain/state/rename_mailbox_state.dart index 2a0b63502..5dba4081b 100644 --- a/lib/features/mailbox/domain/state/rename_mailbox_state.dart +++ b/lib/features/mailbox/domain/state/rename_mailbox_state.dart @@ -2,6 +2,8 @@ import 'package:core/core.dart'; import 'package:tmail_ui_user/features/base/state/ui_action_state.dart'; import 'package:jmap_dart_client/jmap/core/state.dart' as jmap; +class LoadingRenameMailbox extends UIState {} + class RenameMailboxSuccess extends UIActionState { RenameMailboxSuccess({ diff --git a/lib/features/mailbox/domain/state/search_mailbox_state.dart b/lib/features/mailbox/domain/state/search_mailbox_state.dart index 533ccd795..aec50e3e5 100644 --- a/lib/features/mailbox/domain/state/search_mailbox_state.dart +++ b/lib/features/mailbox/domain/state/search_mailbox_state.dart @@ -1,6 +1,8 @@ import 'package:core/core.dart'; import 'package:model/mailbox/presentation_mailbox.dart'; +class LoadingSearchMailbox extends UIState {} + class SearchMailboxSuccess extends UIState { final List mailboxesSearched; diff --git a/lib/features/mailbox/domain/usecases/create_new_mailbox_interactor.dart b/lib/features/mailbox/domain/usecases/create_new_mailbox_interactor.dart index 38f004000..43ce3d0d6 100644 --- a/lib/features/mailbox/domain/usecases/create_new_mailbox_interactor.dart +++ b/lib/features/mailbox/domain/usecases/create_new_mailbox_interactor.dart @@ -12,6 +12,8 @@ class CreateNewMailboxInteractor { Stream> execute(AccountId accountId, CreateNewMailboxRequest newMailboxRequest) async* { try { + yield Right(LoadingCreateNewMailbox()); + final currentMailboxState = await _mailboxRepository.getMailboxState(); final newMailbox = await _mailboxRepository.createNewMailbox(accountId, newMailboxRequest); if (newMailbox != null) { diff --git a/lib/features/mailbox/domain/usecases/delete_multiple_mailbox_interactor.dart b/lib/features/mailbox/domain/usecases/delete_multiple_mailbox_interactor.dart index eda3772f3..5cad6c172 100644 --- a/lib/features/mailbox/domain/usecases/delete_multiple_mailbox_interactor.dart +++ b/lib/features/mailbox/domain/usecases/delete_multiple_mailbox_interactor.dart @@ -20,6 +20,8 @@ class DeleteMultipleMailboxInteractor { List listMailboxIdToDelete ) async* { try { + yield Right(LoadingDeleteMultipleMailboxAll()); + final currentMailboxState = await _mailboxRepository.getMailboxState(); final listResult = await Future.wait( diff --git a/lib/features/mailbox/domain/usecases/move_mailbox_interactor.dart b/lib/features/mailbox/domain/usecases/move_mailbox_interactor.dart index df1e2b91d..b5da23087 100644 --- a/lib/features/mailbox/domain/usecases/move_mailbox_interactor.dart +++ b/lib/features/mailbox/domain/usecases/move_mailbox_interactor.dart @@ -12,6 +12,8 @@ class MoveMailboxInteractor { Stream> execute(AccountId accountId, MoveMailboxRequest request) async* { try { + yield Right(LoadingMoveMailbox()); + final currentMailboxState = await _mailboxRepository.getMailboxState(); final result = await _mailboxRepository.moveMailbox(accountId, request); if (result) { diff --git a/lib/features/mailbox/domain/usecases/rename_mailbox_interactor.dart b/lib/features/mailbox/domain/usecases/rename_mailbox_interactor.dart index 93acd29c3..bd06dd70d 100644 --- a/lib/features/mailbox/domain/usecases/rename_mailbox_interactor.dart +++ b/lib/features/mailbox/domain/usecases/rename_mailbox_interactor.dart @@ -12,6 +12,8 @@ class RenameMailboxInteractor { Stream> execute(AccountId accountId, RenameMailboxRequest request) async* { try { + yield Right(LoadingRenameMailbox()); + final currentMailboxState = await _mailboxRepository.getMailboxState(); final result = await _mailboxRepository.renameMailbox(accountId, request); diff --git a/lib/features/mailbox/domain/usecases/search_mailbox_interactor.dart b/lib/features/mailbox/domain/usecases/search_mailbox_interactor.dart index 60a838d5f..7d1506660 100644 --- a/lib/features/mailbox/domain/usecases/search_mailbox_interactor.dart +++ b/lib/features/mailbox/domain/usecases/search_mailbox_interactor.dart @@ -9,6 +9,8 @@ class SearchMailboxInteractor { Stream> execute(List mailboxes, SearchQuery searchQuery) async* { try { + yield Right(LoadingSearchMailbox()); + final resultList = mailboxes .where((mailbox) => mailbox.name?.name.toLowerCase().contains(searchQuery.value.toLowerCase()) == true) .toList(); diff --git a/lib/features/thread/domain/state/mark_as_multiple_email_read_state.dart b/lib/features/thread/domain/state/mark_as_multiple_email_read_state.dart index fa8e4b395..5351a06ee 100644 --- a/lib/features/thread/domain/state/mark_as_multiple_email_read_state.dart +++ b/lib/features/thread/domain/state/mark_as_multiple_email_read_state.dart @@ -3,6 +3,8 @@ import 'package:model/email/read_actions.dart'; import 'package:jmap_dart_client/jmap/core/state.dart' as jmap; import 'package:tmail_ui_user/features/base/state/ui_action_state.dart'; +class LoadingMarkAsMultipleEmailReadAll extends UIState {} + class MarkAsMultipleEmailReadAllSuccess extends UIActionState { final int countMarkAsReadSuccess; final ReadActions readActions; diff --git a/lib/features/thread/domain/state/mark_as_star_multiple_email_state.dart b/lib/features/thread/domain/state/mark_as_star_multiple_email_state.dart index 54a8552c0..3696a8d83 100644 --- a/lib/features/thread/domain/state/mark_as_star_multiple_email_state.dart +++ b/lib/features/thread/domain/state/mark_as_star_multiple_email_state.dart @@ -3,6 +3,8 @@ import 'package:model/model.dart'; import 'package:jmap_dart_client/jmap/core/state.dart' as jmap; import 'package:tmail_ui_user/features/base/state/ui_action_state.dart'; +class LoadingMarkAsStarMultipleEmailAll extends UIState {} + class MarkAsStarMultipleEmailAllSuccess extends UIActionState { final int countMarkStarSuccess; final MarkStarAction markStarAction; diff --git a/lib/features/thread/domain/state/move_multiple_email_to_mailbox_state.dart b/lib/features/thread/domain/state/move_multiple_email_to_mailbox_state.dart index 2b329f388..c753fbea1 100644 --- a/lib/features/thread/domain/state/move_multiple_email_to_mailbox_state.dart +++ b/lib/features/thread/domain/state/move_multiple_email_to_mailbox_state.dart @@ -6,6 +6,8 @@ import 'package:model/email/email_action_type.dart'; import 'package:tmail_ui_user/features/base/state/ui_action_state.dart'; import 'package:tmail_ui_user/features/email/domain/model/move_action.dart'; +class LoadingMoveMultipleEmailToMailboxAll extends UIState {} + class MoveMultipleEmailToMailboxAllSuccess extends UIActionState { final List movedListEmailId; final MailboxId currentMailboxId; diff --git a/lib/features/thread/domain/usecases/mark_as_multiple_email_read_interactor.dart b/lib/features/thread/domain/usecases/mark_as_multiple_email_read_interactor.dart index ede24ae28..0eaed2b0e 100644 --- a/lib/features/thread/domain/usecases/mark_as_multiple_email_read_interactor.dart +++ b/lib/features/thread/domain/usecases/mark_as_multiple_email_read_interactor.dart @@ -19,6 +19,8 @@ class MarkAsMultipleEmailReadInteractor { ReadActions readAction ) async* { try { + yield Right(LoadingMarkAsMultipleEmailReadAll()); + final listState = await Future.wait([ _mailboxRepository.getMailboxState(), _emailRepository.getEmailState(), diff --git a/lib/features/thread/domain/usecases/mark_as_star_multiple_email_interactor.dart b/lib/features/thread/domain/usecases/mark_as_star_multiple_email_interactor.dart index d6ad2aafc..bdb0a747c 100644 --- a/lib/features/thread/domain/usecases/mark_as_star_multiple_email_interactor.dart +++ b/lib/features/thread/domain/usecases/mark_as_star_multiple_email_interactor.dart @@ -17,6 +17,8 @@ class MarkAsStarMultipleEmailInteractor { MarkStarAction markStarAction ) async* { try { + yield Right(LoadingMarkAsStarMultipleEmailAll()); + final currentEmailState = await _emailRepository.getEmailState(); final listEmailNeedMarkStar = emails diff --git a/lib/features/thread/domain/usecases/move_multiple_email_to_mailbox_interactor.dart b/lib/features/thread/domain/usecases/move_multiple_email_to_mailbox_interactor.dart index 41b94b16e..342b221be 100644 --- a/lib/features/thread/domain/usecases/move_multiple_email_to_mailbox_interactor.dart +++ b/lib/features/thread/domain/usecases/move_multiple_email_to_mailbox_interactor.dart @@ -16,6 +16,8 @@ class MoveMultipleEmailToMailboxInteractor { Stream> execute(AccountId accountId, MoveToMailboxRequest moveRequest) async* { try { + yield Right(LoadingMoveMultipleEmailToMailboxAll()); + final listState = await Future.wait([ _mailboxRepository.getMailboxState(), _emailRepository.getEmailState(),