From 12eb7dbd3532c731d1f5ec67fc683e099ba2dd48 Mon Sep 17 00:00:00 2001 From: DatDang Date: Mon, 30 Jun 2025 11:47:33 +0700 Subject: [PATCH] TF-3845 Thread Detail Fix blue bar detail scroll --- lib/features/email/presentation/email_view.dart | 2 ++ .../calendar_event/calendar_event_detail_widget.dart | 10 +++++++++- .../calendar_event/event_body_content_widget.dart | 11 ++++++++++- .../extension/get_thread_details_email_views.dart | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/lib/features/email/presentation/email_view.dart b/lib/features/email/presentation/email_view.dart index 9cfb45acc..e48cc48bf 100644 --- a/lib/features/email/presentation/email_view.dart +++ b/lib/features/email/presentation/email_view.dart @@ -378,6 +378,8 @@ class EmailView extends GetWidget { isDraggableAppActive: controller.mailboxDashBoardController.isAttachmentDraggableAppActive, onMailtoDelegateAction: controller.openMailToLink, presentationEmail: controller.currentEmail, + scrollController: scrollController, + isInsideThreadDetailView: isInsideThreadDetailView, )), ], ) diff --git a/lib/features/email/presentation/widgets/calendar_event/calendar_event_detail_widget.dart b/lib/features/email/presentation/widgets/calendar_event/calendar_event_detail_widget.dart index 0fbedc402..cbdd7bf22 100644 --- a/lib/features/email/presentation/widgets/calendar_event/calendar_event_detail_widget.dart +++ b/lib/features/email/presentation/widgets/calendar_event/calendar_event_detail_widget.dart @@ -17,6 +17,8 @@ class CalendarEventDetailWidget extends StatelessWidget { final bool? isDraggableAppActive; final OnMailtoDelegateAction? onMailtoDelegateAction; final PresentationEmail? presentationEmail; + final ScrollController? scrollController; + final bool isInsideThreadDetailView; const CalendarEventDetailWidget({ super.key, @@ -25,6 +27,8 @@ class CalendarEventDetailWidget extends StatelessWidget { this.isDraggableAppActive, this.onMailtoDelegateAction, this.presentationEmail, + this.scrollController, + this.isInsideThreadDetailView = false, }); @override @@ -61,7 +65,11 @@ class CalendarEventDetailWidget extends StatelessWidget { child: EventBodyContentWidget( content: eventDesc, isDraggableAppActive: isDraggableAppActive, - onMailtoDelegateAction: onMailtoDelegateAction)), + onMailtoDelegateAction: onMailtoDelegateAction, + scrollController: scrollController, + isInsideThreadDetailView: isInsideThreadDetailView, + ) + ), ], ), ); diff --git a/lib/features/email/presentation/widgets/calendar_event/event_body_content_widget.dart b/lib/features/email/presentation/widgets/calendar_event/event_body_content_widget.dart index 49c1972eb..f70b4b2e2 100644 --- a/lib/features/email/presentation/widgets/calendar_event/event_body_content_widget.dart +++ b/lib/features/email/presentation/widgets/calendar_event/event_body_content_widget.dart @@ -19,12 +19,16 @@ class EventBodyContentWidget extends StatelessWidget { final String content; final bool? isDraggableAppActive; final OnMailtoDelegateAction? onMailtoDelegateAction; + final ScrollController? scrollController; + final bool isInsideThreadDetailView; const EventBodyContentWidget({ super.key, required this.content, this.isDraggableAppActive, this.onMailtoDelegateAction, + this.scrollController, + this.isInsideThreadDetailView = false, }); @override @@ -47,7 +51,11 @@ class EventBodyContentWidget extends StatelessWidget { children: [ if (PlatformInfo.isWeb) Container( - constraints: const BoxConstraints(maxHeight: EventDescriptionDetailWidgetStyles.maxHeight), + constraints: isInsideThreadDetailView + ? null + : const BoxConstraints( + maxHeight: EventDescriptionDetailWidgetStyles.maxHeight, + ), padding: const EdgeInsetsDirectional.only(end: EventDescriptionDetailWidgetStyles.webContentPadding), child: LayoutBuilder(builder: (context, constraints) { return Stack( @@ -61,6 +69,7 @@ class EventBodyContentWidget extends StatelessWidget { contentHtml: content, mailtoDelegate: onMailtoDelegateAction, direction: AppUtils.getCurrentDirection(context), + scrollController: scrollController, ), if (isDraggableAppActive == true) PointerInterceptor( diff --git a/lib/features/thread_detail/presentation/extension/get_thread_details_email_views.dart b/lib/features/thread_detail/presentation/extension/get_thread_details_email_views.dart index 0d1bbf99b..dce0e5be6 100644 --- a/lib/features/thread_detail/presentation/extension/get_thread_details_email_views.dart +++ b/lib/features/thread_detail/presentation/extension/get_thread_details_email_views.dart @@ -102,7 +102,7 @@ extension GetThreadDetailEmailViews on ThreadDetailController { padding: const EdgeInsetsDirectional.only(bottom: 16), child: EmailView( key: GlobalObjectKey(presentationEmail.id?.id.value ?? ''), - isInsideThreadDetailView: true, + isInsideThreadDetailView: emailIdsPresentation.length > 1, emailId: presentationEmail.id, isFirstEmailInThreadDetail: isFirstEmailInThreadDetail, threadSubject: isFirstEmailInThreadDetail