From ef436c35570761d9f05426ad64216f422fb7f0b2 Mon Sep 17 00:00:00 2001 From: ManhNTX Date: Tue, 12 Jul 2022 07:08:47 +0700 Subject: [PATCH] add either and state in interactor --- env.file | 2 +- .../presentation/composer_bindings.dart | 4 +- .../presentation/composer_controller.dart | 18 +++++--- .../datasource/composer_cache_datasource.dart | 2 +- .../composer_cache_datasoure_impl.dart | 44 ++++++++++++------- .../composer_cache_repository_impl.dart | 2 +- .../repository/composer_cache_repository.dart | 2 +- .../state/get_composer_cache_state.dart | 21 +++++++++ .../state/remove_composer_cache_state.dart | 18 ++++++++ .../state/save_composer_cache_state.dart | 18 ++++++++ .../usecases/get_composer_cache_on_web.dart | 12 ----- .../get_composer_cache_on_web_interactor.dart | 20 +++++++++ .../remove_composer_cache_on_web.dart | 11 ----- ...move_composer_cache_on_web_interactor.dart | 18 ++++++++ .../usecases/save_composer_cache_on_web.dart | 12 ----- ...save_composer_cache_on_web_interactor.dart | 19 ++++++++ .../bindings/mailbox_dashboard_bindings.dart | 6 +-- .../mailbox_dashboard_controller.dart | 43 ++++++++++-------- ...ails_in_mailbox_interactor_test.mocks.dart | 3 +- ...ails_in_mailbox_interactor_test.mocks.dart | 3 +- 20 files changed, 189 insertions(+), 89 deletions(-) create mode 100644 lib/features/mailbox_dashboard/domain/state/get_composer_cache_state.dart create mode 100644 lib/features/mailbox_dashboard/domain/state/remove_composer_cache_state.dart create mode 100644 lib/features/mailbox_dashboard/domain/state/save_composer_cache_state.dart delete mode 100644 lib/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web.dart create mode 100644 lib/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart delete mode 100644 lib/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web.dart create mode 100644 lib/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart delete mode 100644 lib/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web.dart create mode 100644 lib/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web_interactor.dart diff --git a/env.file b/env.file index f915cbf58..71638e979 100644 --- a/env.file +++ b/env.file @@ -1,3 +1,3 @@ -SERVER_URL=https://gateway.upn.integration-open-paas.org +SERVER_URL=http://localhost DOMAIN_REDIRECT_URL=http://localhost:3000 WEB_OIDC_CLIENT_ID=teammail-web \ No newline at end of file diff --git a/lib/features/composer/presentation/composer_bindings.dart b/lib/features/composer/presentation/composer_bindings.dart index 159502945..2514a5718 100644 --- a/lib/features/composer/presentation/composer_bindings.dart +++ b/lib/features/composer/presentation/composer_bindings.dart @@ -29,8 +29,8 @@ import 'package:tmail_ui_user/features/email/data/network/email_api.dart'; import 'package:tmail_ui_user/features/email/data/repository/email_repository_impl.dart'; import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/get_email_content_interactor.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; import 'package:tmail_ui_user/features/manage_account/data/datasource/manage_account_datasource.dart'; import 'package:tmail_ui_user/features/manage_account/data/datasource_impl/manage_account_datasource_impl.dart'; diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index 3717a5633..9787b523c 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -39,8 +39,8 @@ import 'package:tmail_ui_user/features/composer/presentation/model/screen_displa import 'package:tmail_ui_user/features/email/domain/state/get_email_content_state.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/get_email_content_interactor.dart'; import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; import 'package:tmail_ui_user/features/manage_account/domain/state/get_all_identities_state.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_identities_interactor.dart'; @@ -814,11 +814,15 @@ class ComposerController extends BaseController { } void _getEmailContentAction(ComposerArguments arguments) async { - final baseDownloadUrl = mailboxDashBoardController.sessionCurrent?.getDownloadUrl(); - final accountId = mailboxDashBoardController.sessionCurrent?.accounts.keys.first; - final emailId = arguments.presentationEmail?.id; - if (emailId != null && baseDownloadUrl != null && accountId != null) { - consumeState(_getEmailContentInteractor.execute(accountId, emailId, baseDownloadUrl)); + if(arguments.emailContents != null && arguments.emailContents!.isNotEmpty){ + emailContents.value = arguments.emailContents; + } else { + final baseDownloadUrl = mailboxDashBoardController.sessionCurrent?.getDownloadUrl(); + final accountId = mailboxDashBoardController.sessionCurrent?.accounts.keys.first; + final emailId = arguments.presentationEmail?.id; + if (emailId != null && baseDownloadUrl != null && accountId != null) { + consumeState(_getEmailContentInteractor.execute(accountId, emailId, baseDownloadUrl)); + } } } diff --git a/lib/features/mailbox_dashboard/data/datasource/composer_cache_datasource.dart b/lib/features/mailbox_dashboard/data/datasource/composer_cache_datasource.dart index 8bacfa545..56450f831 100644 --- a/lib/features/mailbox_dashboard/data/datasource/composer_cache_datasource.dart +++ b/lib/features/mailbox_dashboard/data/datasource/composer_cache_datasource.dart @@ -4,7 +4,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/data/model/composer_cac abstract class ComposerCacheDataSource { void saveComposerCacheOnWeb(Email email); - ComposerCache? getComposerCacheOnWeb(); + ComposerCache getComposerCacheOnWeb(); void removeComposerCacheOnWeb(); } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/data/datasource_impl/composer_cache_datasoure_impl.dart b/lib/features/mailbox_dashboard/data/datasource_impl/composer_cache_datasoure_impl.dart index 5ebb4e34f..85042f2fa 100644 --- a/lib/features/mailbox_dashboard/data/datasource_impl/composer_cache_datasoure_impl.dart +++ b/lib/features/mailbox_dashboard/data/datasource_impl/composer_cache_datasoure_impl.dart @@ -6,29 +6,43 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/compose import 'package:universal_html/html.dart' as html; class ComposerCacheDataSourceImpl extends ComposerCacheDataSource { - @override - ComposerCache? getComposerCacheOnWeb() { - final result = html.window.localStorage.entries - .where((e) => e.key == EmailActionType.edit.name) - .toList(); - if (result.isNotEmpty) { - final jsonHandle = json.decode(result.first.value) as Map; - final emailCache = ComposerCache.fromJson(jsonHandle); - return emailCache; - } else { - return null; + ComposerCache getComposerCacheOnWeb() { + try { + final result = html.window.sessionStorage.entries + .where((e) => e.key == EmailActionType.edit.name) + .toList(); + if (result.isNotEmpty) { + final jsonHandle = json.decode(result.first.value) as Map; + final emailCache = ComposerCache.fromJson(jsonHandle); + return emailCache; + } else { + throw UnimplementedError(); + } + } catch (e) { + throw UnimplementedError(e.toString()); } } @override void removeComposerCacheOnWeb() { - html.window.localStorage.removeWhere((key, value) => key == EmailActionType.edit.name); + try { + html.window.sessionStorage + .removeWhere((key, value) => key == EmailActionType.edit.name); + } catch (e) { + throw UnimplementedError(e.toString()); + } } @override void saveComposerCacheOnWeb(Email email) { - Map entries = { EmailActionType.edit.name: json.encode(email.toJson()) }; - html.window.localStorage.addAll(entries); + try { + Map entries = { + EmailActionType.edit.name: json.encode(email.toJson()) + }; + html.window.sessionStorage.addAll(entries); + } catch (e) { + throw UnimplementedError(e.toString()); + } } -} \ No newline at end of file +} diff --git a/lib/features/mailbox_dashboard/data/repository/composer_cache_repository_impl.dart b/lib/features/mailbox_dashboard/data/repository/composer_cache_repository_impl.dart index 63190dc13..91b41fe0b 100644 --- a/lib/features/mailbox_dashboard/data/repository/composer_cache_repository_impl.dart +++ b/lib/features/mailbox_dashboard/data/repository/composer_cache_repository_impl.dart @@ -10,7 +10,7 @@ class ComposerCacheRepositoryImpl extends ComposerCacheRepository { ComposerCacheRepositoryImpl(this.composerCacheDataSource); @override - ComposerCache? getComposerCacheOnWeb() { + ComposerCache getComposerCacheOnWeb() { return composerCacheDataSource.getComposerCacheOnWeb(); } diff --git a/lib/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart b/lib/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart index 79f7e2e1b..643e7ca7f 100644 --- a/lib/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart +++ b/lib/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart @@ -4,7 +4,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/data/model/composer_cac abstract class ComposerCacheRepository { void saveComposerCacheOnWeb(Email email); - ComposerCache? getComposerCacheOnWeb(); + ComposerCache getComposerCacheOnWeb(); void removeComposerCacheOnWeb(); } diff --git a/lib/features/mailbox_dashboard/domain/state/get_composer_cache_state.dart b/lib/features/mailbox_dashboard/domain/state/get_composer_cache_state.dart new file mode 100644 index 000000000..51ab42736 --- /dev/null +++ b/lib/features/mailbox_dashboard/domain/state/get_composer_cache_state.dart @@ -0,0 +1,21 @@ +import 'package:core/core.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/data/model/composer_cache.dart'; + +class GetComposerCacheSuccess extends UIState { + + final ComposerCache composerCache; + + GetComposerCacheSuccess(this.composerCache); + + @override + List get props => [composerCache]; +} + +class GetComposerCacheFailure extends FeatureFailure { + final dynamic exception; + + GetComposerCacheFailure(this.exception); + + @override + List get props => [exception]; +} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/state/remove_composer_cache_state.dart b/lib/features/mailbox_dashboard/domain/state/remove_composer_cache_state.dart new file mode 100644 index 000000000..72349c1d2 --- /dev/null +++ b/lib/features/mailbox_dashboard/domain/state/remove_composer_cache_state.dart @@ -0,0 +1,18 @@ +import 'package:core/core.dart'; + +class RemoveComposerCacheSuccess extends UIState { + + RemoveComposerCacheSuccess(); + + @override + List get props => []; +} + +class RemoveComposerCacheFailure extends FeatureFailure { + final dynamic exception; + + RemoveComposerCacheFailure(this.exception); + + @override + List get props => [exception]; +} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/state/save_composer_cache_state.dart b/lib/features/mailbox_dashboard/domain/state/save_composer_cache_state.dart new file mode 100644 index 000000000..a2552f667 --- /dev/null +++ b/lib/features/mailbox_dashboard/domain/state/save_composer_cache_state.dart @@ -0,0 +1,18 @@ +import 'package:core/core.dart'; + +class SaveComposerCacheSuccess extends UIState { + + SaveComposerCacheSuccess(); + + @override + List get props => []; +} + +class SaveComposerCacheFailure extends FeatureFailure { + final dynamic exception; + + SaveComposerCacheFailure(this.exception); + + @override + List get props => [exception]; +} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web.dart b/lib/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web.dart deleted file mode 100644 index d636e640d..000000000 --- a/lib/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web.dart +++ /dev/null @@ -1,12 +0,0 @@ -import 'package:tmail_ui_user/features/mailbox_dashboard/data/model/composer_cache.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart'; - -class GetComposerCacheOnWebInteractor { - final ComposerCacheRepository composerCacheRepository; - - GetComposerCacheOnWebInteractor(this.composerCacheRepository); - - ComposerCache? execute() { - return composerCacheRepository.getComposerCacheOnWeb(); - } -} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart b/lib/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart new file mode 100644 index 000000000..f5a1fc0b1 --- /dev/null +++ b/lib/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart @@ -0,0 +1,20 @@ +import 'package:core/presentation/state/failure.dart'; +import 'package:core/presentation/state/success.dart'; +import 'package:dartz/dartz.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_composer_cache_state.dart'; + +class GetComposerCacheOnWebInteractor { + final ComposerCacheRepository composerCacheRepository; + + GetComposerCacheOnWebInteractor(this.composerCacheRepository); + + Either execute() { + try { + final data = composerCacheRepository.getComposerCacheOnWeb(); + return Right(GetComposerCacheSuccess(data)); + } catch (exception) { + return Left(GetComposerCacheFailure(exception)); + } + } +} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web.dart b/lib/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web.dart deleted file mode 100644 index dd568157b..000000000 --- a/lib/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web.dart +++ /dev/null @@ -1,11 +0,0 @@ -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart'; - -class RemoveComposerCacheOnWebInteractor { - final ComposerCacheRepository composerCacheRepository; - - RemoveComposerCacheOnWebInteractor(this.composerCacheRepository); - - execute() { - return composerCacheRepository.removeComposerCacheOnWeb(); - } -} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart b/lib/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart new file mode 100644 index 000000000..1b13c7486 --- /dev/null +++ b/lib/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart @@ -0,0 +1,18 @@ +import 'package:dartz/dartz.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_composer_cache_state.dart'; + +class RemoveComposerCacheOnWebInteractor { + final ComposerCacheRepository composerCacheRepository; + + RemoveComposerCacheOnWebInteractor(this.composerCacheRepository); + + execute() { + try { + composerCacheRepository.removeComposerCacheOnWeb(); + return const Right(RemoveComposerCacheSuccess); + } catch (exception) { + return Left(RemoveComposerCacheFailure(exception)); + } + } +} diff --git a/lib/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web.dart b/lib/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web.dart deleted file mode 100644 index 5917975a6..000000000 --- a/lib/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web.dart +++ /dev/null @@ -1,12 +0,0 @@ -import 'package:jmap_dart_client/jmap/mail/email/email.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart'; - -class SaveComposerCacheOnWebInteractor { - final ComposerCacheRepository composerCacheRepository; - - SaveComposerCacheOnWebInteractor(this.composerCacheRepository); - - execute(Email email) { - return composerCacheRepository.saveComposerCacheOnWeb(email); - } -} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web_interactor.dart b/lib/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web_interactor.dart new file mode 100644 index 000000000..e4b073c6d --- /dev/null +++ b/lib/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web_interactor.dart @@ -0,0 +1,19 @@ +import 'package:dartz/dartz.dart'; +import 'package:jmap_dart_client/jmap/mail/email/email.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/save_composer_cache_state.dart'; + +class SaveComposerCacheOnWebInteractor { + final ComposerCacheRepository composerCacheRepository; + + SaveComposerCacheOnWebInteractor(this.composerCacheRepository); + + execute(Email email) { + try { + composerCacheRepository.saveComposerCacheOnWeb(email); + return const Right(SaveComposerCacheSuccess); + } catch (exception) { + return Left(SaveComposerCacheFailure(exception)); + } + } +} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart b/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart index eca6b157d..5a1610eb2 100644 --- a/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart +++ b/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart @@ -23,7 +23,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/compose import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/composer_cache_datasoure_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/repository/composer_cache_repository_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/email/presentation/email_bindings.dart'; import 'package:tmail_ui_user/features/login/data/datasource/account_datasource.dart'; @@ -63,9 +63,9 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_all import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_user_profile_interactor.dart'; import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/quick_search_email_interactor.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_email_drafts_interactor.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_recent_search_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index 547cf36e2..c523c78f1 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -27,7 +27,8 @@ import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_reques import 'package:tmail_ui_user/features/email/domain/state/delete_email_permanently_state.dart'; import 'package:tmail_ui_user/features/email/domain/state/move_to_mailbox_state.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/delete_email_permanently_interactor.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_composer_cache_state.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart'; @@ -123,23 +124,27 @@ class MailboxDashBoardController extends ReloadableController { super.onReady(); } - void _handleEmailCache() async { - final emailCache = _getEmailCacheOnWebInteractor.execute(); - if (emailCache !=null) { - final ComposerArguments composerArguments = ComposerArguments( - emailActionType: EmailActionType.edit, - presentationEmail: PresentationEmail( - emailCache.id, - subject: emailCache.subject, - from: emailCache.from, - to: emailCache.to, - cc: emailCache.cc, - bcc: emailCache.bcc, - ), - emailContents: emailCache.emailContentList, - ); - openComposerOverlay(composerArguments); - } + void _handleComposerCache() async { + _getEmailCacheOnWebInteractor.execute().fold( + (failure) {}, + (success) { + if(success is GetComposerCacheSuccess){ + final ComposerArguments composerArguments = ComposerArguments( + emailActionType: EmailActionType.edit, + presentationEmail: PresentationEmail( + success.composerCache.id, + subject: success.composerCache.subject, + from: success.composerCache.from, + to: success.composerCache.to, + cc: success.composerCache.cc, + bcc: success.composerCache.bcc, + ), + emailContents: success.composerCache.emailContentList, + ); + openComposerOverlay(composerArguments); + } + } + ); } @override @@ -243,7 +248,7 @@ class MailboxDashBoardController extends ReloadableController { void _getUserProfile() async { userProfile.value = sessionCurrent != null ? UserProfile(sessionCurrent!.username.value) : null; if (kIsWeb && userProfile.value != null) { - _handleEmailCache(); + _handleComposerCache(); } } diff --git a/test/features/thread/domain/usecases/get_emails_in_mailbox_interactor_test.mocks.dart b/test/features/thread/domain/usecases/get_emails_in_mailbox_interactor_test.mocks.dart index 12f294734..dc82f464a 100644 --- a/test/features/thread/domain/usecases/get_emails_in_mailbox_interactor_test.mocks.dart +++ b/test/features/thread/domain/usecases/get_emails_in_mailbox_interactor_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.2.0 from annotations +// Mocks generated by Mockito 5.0.17 from annotations // in tmail_ui_user/test/features/thread/domain/usecases/get_emails_in_mailbox_interactor_test.dart. // Do not manually edit this file. @@ -24,7 +24,6 @@ import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dar import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart' as _i2; -// ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references diff --git a/test/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor_test.mocks.dart b/test/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor_test.mocks.dart index 824dfe96a..b2a94e9d3 100644 --- a/test/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor_test.mocks.dart +++ b/test/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.2.0 from annotations +// Mocks generated by Mockito 5.0.17 from annotations // in tmail_ui_user/test/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor_test.dart. // Do not manually edit this file. @@ -24,7 +24,6 @@ import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dar import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart' as _i2; -// ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values // ignore_for_file: avoid_setters_without_getters // ignore_for_file: comment_references