diff --git a/lib/features/email/presentation/utils/email_utils.dart b/lib/features/email/presentation/utils/email_utils.dart index ea1dd4d93..78d4d79c5 100644 --- a/lib/features/email/presentation/utils/email_utils.dart +++ b/lib/features/email/presentation/utils/email_utils.dart @@ -1,10 +1,13 @@ import 'package:collection/collection.dart'; -import 'package:core/utils/app_logger.dart'; +import 'package:core/core.dart'; +import 'package:dartz/dartz.dart'; import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart'; import 'package:jmap_dart_client/jmap/core/properties/properties.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; +import 'package:tmail_ui_user/features/email/domain/state/download_attachment_for_web_state.dart'; +import 'package:tmail_ui_user/features/email/domain/state/view_attachment_for_web_state.dart'; import 'package:tmail_ui_user/features/email/presentation/model/email_unsubscribe.dart'; import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.dart'; import 'package:tmail_ui_user/main/error/capability_validator.dart'; @@ -49,4 +52,18 @@ class EmailUtils { return null; } } + + static bool checkingIfAttachmentActionIsEnabled(Either? state) { + return state?.fold( + (failure) { + return failure is DownloadAttachmentForWebFailure + || failure is ViewAttachmentForWebFailure; + }, + (success) { + return success is DownloadAttachmentForWebSuccess + || success is ViewAttachmentForWebSuccess + || success is IdleDownloadAttachmentForWeb + || success is IdleViewAttachmentForWeb; + }) ?? false; + } } \ No newline at end of file