TF-3845 Thread Detail Fix blue bar detail scroll

This commit is contained in:
DatDang
2025-06-30 11:47:33 +07:00
committed by Dat H. Pham
parent 8864fbc03a
commit 12eb7dbd35
4 changed files with 22 additions and 3 deletions
@@ -378,6 +378,8 @@ class EmailView extends GetWidget<SingleEmailController> {
isDraggableAppActive: controller.mailboxDashBoardController.isAttachmentDraggableAppActive, isDraggableAppActive: controller.mailboxDashBoardController.isAttachmentDraggableAppActive,
onMailtoDelegateAction: controller.openMailToLink, onMailtoDelegateAction: controller.openMailToLink,
presentationEmail: controller.currentEmail, presentationEmail: controller.currentEmail,
scrollController: scrollController,
isInsideThreadDetailView: isInsideThreadDetailView,
)), )),
], ],
) )
@@ -17,6 +17,8 @@ class CalendarEventDetailWidget extends StatelessWidget {
final bool? isDraggableAppActive; final bool? isDraggableAppActive;
final OnMailtoDelegateAction? onMailtoDelegateAction; final OnMailtoDelegateAction? onMailtoDelegateAction;
final PresentationEmail? presentationEmail; final PresentationEmail? presentationEmail;
final ScrollController? scrollController;
final bool isInsideThreadDetailView;
const CalendarEventDetailWidget({ const CalendarEventDetailWidget({
super.key, super.key,
@@ -25,6 +27,8 @@ class CalendarEventDetailWidget extends StatelessWidget {
this.isDraggableAppActive, this.isDraggableAppActive,
this.onMailtoDelegateAction, this.onMailtoDelegateAction,
this.presentationEmail, this.presentationEmail,
this.scrollController,
this.isInsideThreadDetailView = false,
}); });
@override @override
@@ -61,7 +65,11 @@ class CalendarEventDetailWidget extends StatelessWidget {
child: EventBodyContentWidget( child: EventBodyContentWidget(
content: eventDesc, content: eventDesc,
isDraggableAppActive: isDraggableAppActive, isDraggableAppActive: isDraggableAppActive,
onMailtoDelegateAction: onMailtoDelegateAction)), onMailtoDelegateAction: onMailtoDelegateAction,
scrollController: scrollController,
isInsideThreadDetailView: isInsideThreadDetailView,
)
),
], ],
), ),
); );
@@ -19,12 +19,16 @@ class EventBodyContentWidget extends StatelessWidget {
final String content; final String content;
final bool? isDraggableAppActive; final bool? isDraggableAppActive;
final OnMailtoDelegateAction? onMailtoDelegateAction; final OnMailtoDelegateAction? onMailtoDelegateAction;
final ScrollController? scrollController;
final bool isInsideThreadDetailView;
const EventBodyContentWidget({ const EventBodyContentWidget({
super.key, super.key,
required this.content, required this.content,
this.isDraggableAppActive, this.isDraggableAppActive,
this.onMailtoDelegateAction, this.onMailtoDelegateAction,
this.scrollController,
this.isInsideThreadDetailView = false,
}); });
@override @override
@@ -47,7 +51,11 @@ class EventBodyContentWidget extends StatelessWidget {
children: [ children: [
if (PlatformInfo.isWeb) if (PlatformInfo.isWeb)
Container( Container(
constraints: const BoxConstraints(maxHeight: EventDescriptionDetailWidgetStyles.maxHeight), constraints: isInsideThreadDetailView
? null
: const BoxConstraints(
maxHeight: EventDescriptionDetailWidgetStyles.maxHeight,
),
padding: const EdgeInsetsDirectional.only(end: EventDescriptionDetailWidgetStyles.webContentPadding), padding: const EdgeInsetsDirectional.only(end: EventDescriptionDetailWidgetStyles.webContentPadding),
child: LayoutBuilder(builder: (context, constraints) { child: LayoutBuilder(builder: (context, constraints) {
return Stack( return Stack(
@@ -61,6 +69,7 @@ class EventBodyContentWidget extends StatelessWidget {
contentHtml: content, contentHtml: content,
mailtoDelegate: onMailtoDelegateAction, mailtoDelegate: onMailtoDelegateAction,
direction: AppUtils.getCurrentDirection(context), direction: AppUtils.getCurrentDirection(context),
scrollController: scrollController,
), ),
if (isDraggableAppActive == true) if (isDraggableAppActive == true)
PointerInterceptor( PointerInterceptor(
@@ -102,7 +102,7 @@ extension GetThreadDetailEmailViews on ThreadDetailController {
padding: const EdgeInsetsDirectional.only(bottom: 16), padding: const EdgeInsetsDirectional.only(bottom: 16),
child: EmailView( child: EmailView(
key: GlobalObjectKey(presentationEmail.id?.id.value ?? ''), key: GlobalObjectKey(presentationEmail.id?.id.value ?? ''),
isInsideThreadDetailView: true, isInsideThreadDetailView: emailIdsPresentation.length > 1,
emailId: presentationEmail.id, emailId: presentationEmail.id,
isFirstEmailInThreadDetail: isFirstEmailInThreadDetail, isFirstEmailInThreadDetail: isFirstEmailInThreadDetail,
threadSubject: isFirstEmailInThreadDetail threadSubject: isFirstEmailInThreadDetail