From 8bbc77088160acfec21ed7f2f8ea75468bcb3bdb Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 11 May 2023 16:17:48 +0700 Subject: [PATCH] TF-1832 Enable drag horizontal scroll attachment in email view (cherry picked from commit 1b8a0e9adeb86add0adf56ab8bf8efa60ce3d9ef) --- .../controller/single_email_controller.dart | 3 +++ lib/features/email/presentation/email_view.dart | 14 ++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/features/email/presentation/controller/single_email_controller.dart b/lib/features/email/presentation/controller/single_email_controller.dart index fab6b4cf9..930b00489 100644 --- a/lib/features/email/presentation/controller/single_email_controller.dart +++ b/lib/features/email/presentation/controller/single_email_controller.dart @@ -103,6 +103,8 @@ class SingleEmailController extends BaseController with AppLoaderMixin { Identity? _identitySelected; List? initialEmailContents; + final ScrollController scrollControllerAttachment = ScrollController(); + final StreamController> _downloadProgressStateController = StreamController>.broadcast(); Stream> get downloadProgressState => _downloadProgressStateController.stream; @@ -135,6 +137,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin { @override void onClose() { _downloadProgressStateController.close(); + scrollControllerAttachment.dispose(); super.onClose(); } diff --git a/lib/features/email/presentation/email_view.dart b/lib/features/email/presentation/email_view.dart index 11b971e4e..ca3e7e425 100644 --- a/lib/features/email/presentation/email_view.dart +++ b/lib/features/email/presentation/email_view.dart @@ -21,6 +21,7 @@ import 'package:model/extensions/list_attachment_extension.dart'; import 'package:model/extensions/list_email_content_extension.dart'; import 'package:model/extensions/presentation_email_extension.dart'; import 'package:model/mailbox/presentation_mailbox.dart'; +import 'package:tmail_ui_user/features/base/widget/custom_scroll_behavior.dart'; import 'package:tmail_ui_user/features/base/widget/popup_item_widget.dart'; import 'package:tmail_ui_user/features/email/presentation/controller/single_email_controller.dart'; import 'package:tmail_ui_user/features/email/presentation/widgets/app_bar_mail_widget_builder.dart'; @@ -409,13 +410,16 @@ class EmailView extends GetWidget { return Container( height: 60, color: Colors.transparent, - child: ListView.builder( + child: ScrollConfiguration( + behavior: CustomScrollBehavior(), + child: ListView.builder( key: const Key('list_attachment_minimize_in_email'), shrinkWrap: true, - physics: const ClampingScrollPhysics(), scrollDirection: Axis.horizontal, + controller: controller.scrollControllerAttachment, itemCount: attachments.length, - itemBuilder: (context, index) => AttachmentFileTileBuilder( + itemBuilder: (context, index) => + AttachmentFileTileBuilder( attachments[index], onDownloadAttachmentFileActionClick: (attachment) { if (BuildUtils.isWeb) { @@ -423,7 +427,9 @@ class EmailView extends GetWidget { } else { controller.exportAttachment(context, attachment); } - }) + } + ) + ), ) ); }