diff --git a/lib/features/composer/domain/state/update_email_drafts_state.dart b/lib/features/composer/domain/state/update_email_drafts_state.dart index 434826f65..b70bd3fb9 100644 --- a/lib/features/composer/domain/state/update_email_drafts_state.dart +++ b/lib/features/composer/domain/state/update_email_drafts_state.dart @@ -1,6 +1,14 @@ import 'package:core/core.dart'; import 'package:jmap_dart_client/jmap/mail/email/email.dart'; +class UpdatingEmailDrafts extends UIState { + + UpdatingEmailDrafts(); + + @override + List get props => []; +} + class UpdateEmailDraftsSuccess extends UIState { final Email emailAsDrafts; diff --git a/lib/features/composer/domain/usecases/update_email_drafts_interactor.dart b/lib/features/composer/domain/usecases/update_email_drafts_interactor.dart index c4878fc39..9bfe218d7 100644 --- a/lib/features/composer/domain/usecases/update_email_drafts_interactor.dart +++ b/lib/features/composer/domain/usecases/update_email_drafts_interactor.dart @@ -12,6 +12,7 @@ class UpdateEmailDraftsInteractor { Stream> execute(AccountId accountId, Email newEmail, EmailId oldEmailId) async* { try { + yield Right(UpdatingEmailDrafts()); final newEmailDrafts = await emailRepository.updateEmailDrafts(accountId, newEmail, oldEmailId); if (newEmailDrafts != null) { yield Right(UpdateEmailDraftsSuccess(newEmailDrafts)); diff --git a/lib/features/email/domain/state/get_email_content_state.dart b/lib/features/email/domain/state/get_email_content_state.dart index e9ee5e491..e2ba3da6f 100644 --- a/lib/features/email/domain/state/get_email_content_state.dart +++ b/lib/features/email/domain/state/get_email_content_state.dart @@ -1,6 +1,14 @@ import 'package:core/core.dart'; import 'package:model/model.dart'; +class GetEmailContentLoading extends UIState { + + GetEmailContentLoading(); + + @override + List get props => []; +} + class GetEmailContentSuccess extends UIState { final List emailContents; final List emailContentsDisplayed; @@ -13,7 +21,7 @@ class GetEmailContentSuccess extends UIState { } class GetEmailContentFailure extends FeatureFailure { - final exception; + final dynamic exception; GetEmailContentFailure(this.exception); diff --git a/lib/features/email/domain/usecases/get_email_content_interactor.dart b/lib/features/email/domain/usecases/get_email_content_interactor.dart index 023325e68..10e548c51 100644 --- a/lib/features/email/domain/usecases/get_email_content_interactor.dart +++ b/lib/features/email/domain/usecases/get_email_content_interactor.dart @@ -14,7 +14,7 @@ class GetEmailContentInteractor { Stream> execute(AccountId accountId, EmailId emailId, String? baseDownloadUrl) async* { try { - yield Right(LoadingState()); + yield Right(GetEmailContentLoading()); final email = await emailRepository.getEmailContent(accountId, emailId); if (email.emailContentList.isNotEmpty) { diff --git a/lib/features/email/presentation/email_view.dart b/lib/features/email/presentation/email_view.dart index e3ad550bf..38fb5c0ad 100644 --- a/lib/features/email/presentation/email_view.dart +++ b/lib/features/email/presentation/email_view.dart @@ -9,6 +9,7 @@ import 'package:jmap_dart_client/jmap/mail/email/email_address.dart'; import 'package:model/model.dart'; import 'package:tmail_ui_user/features/base/mixin/network_connection_mixin.dart'; import 'package:tmail_ui_user/features/composer/presentation/extensions/prefix_email_address_extension.dart'; +import 'package:tmail_ui_user/features/email/domain/state/get_email_content_state.dart'; import 'package:tmail_ui_user/features/email/presentation/email_controller.dart'; import 'package:tmail_ui_user/features/email/presentation/widgets/app_bar_mail_widget_builder.dart'; import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_file_tile_builder.dart'; @@ -226,7 +227,7 @@ class EmailView extends GetWidget with NetworkConnectionMixin { return controller.viewState.value.fold( (failure) => const SizedBox.shrink(), (success) { - if (success is LoadingState) { + if (success is GetEmailContentLoading) { return const Align(alignment: Alignment.topCenter, child: Padding( padding: EdgeInsets.all(16), child: SizedBox(