From 6549d54d003a22a1f2ba8bc67f1b7abf0d21385a Mon Sep 17 00:00:00 2001 From: hieubt Date: Tue, 17 Oct 2023 17:32:15 +0700 Subject: [PATCH] TF-1801 Add function handle open attachment list (cherry picked from commit 5e3e021dfa066a115a65a95c1648e1156cf23310) --- .../controller/single_email_controller.dart | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/lib/features/email/presentation/controller/single_email_controller.dart b/lib/features/email/presentation/controller/single_email_controller.dart index 76cfacafe..8f1d2c301 100644 --- a/lib/features/email/presentation/controller/single_email_controller.dart +++ b/lib/features/email/presentation/controller/single_email_controller.dart @@ -58,6 +58,8 @@ import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_star_email_ import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/send_receipt_to_sender_interactor.dart'; import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart'; +import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_bottom_sheet_builder.dart'; +import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_list/attachment_list_dialog_builder.dart'; import 'package:tmail_ui_user/features/email/presentation/widgets/email_address_bottom_sheet_builder.dart'; import 'package:tmail_ui_user/features/email/presentation/widgets/email_address_dialog_builder.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart'; @@ -1338,4 +1340,38 @@ class SingleEmailController extends BaseController with AppLoaderMixin { final emailAddress = EmailAddress(mailTo, mailTo); mailboxDashBoardController.goToComposer(ComposerArguments.fromEmailAddress(emailAddress)); } + + void openAttachmentList(BuildContext context, List attachments) { + if (responsiveUtils.isMobile(context)) { + (AttachmentListBottomSheetBuilder(context, attachments, imagePaths) + ..onCloseButtonAction(() => popBack()) + ..onDownloadAttachmentFileAction((attachment) { + if (PlatformInfo.isWeb) { + downloadAttachmentForWeb(context, attachment); + } else { + exportAttachment(context, attachment); + } + }) + ).show(); + } else { + showDialog( + context: context, + barrierColor: AppColor.colorDefaultCupertinoActionSheet, + builder: (BuildContext context) => + PointerInterceptor( + child: (AttachmentListDialogBuilder(context, imagePaths, attachments, responsiveUtils) + ..backgroundColor(Colors.black.withAlpha(24)) + ..onCloseButtonAction(() => popBack()) + ..onDownloadAttachmentFileAction((attachment) { + if (PlatformInfo.isWeb) { + downloadAttachmentForWeb(context, attachment); + } else { + exportAttachment(context, attachment); + } + }) + ).build() + ) + ); + } + } } \ No newline at end of file