Support vertical scrolling email view when cursor is over calendar event description

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-07-09 16:06:22 +07:00
committed by Dat H. Pham
parent a4d7fec6e1
commit 8100e886d7
6 changed files with 105 additions and 110 deletions
@@ -14,7 +14,6 @@ class CalendarEventDetailWidget extends StatelessWidget {
final CalendarEvent calendarEvent;
final String emailContent;
final bool? isDraggableAppActive;
final OnMailtoDelegateAction? onMailtoDelegateAction;
final PresentationEmail? presentationEmail;
final ScrollController? scrollController;
@@ -24,7 +23,6 @@ class CalendarEventDetailWidget extends StatelessWidget {
super.key,
required this.calendarEvent,
required this.emailContent,
this.isDraggableAppActive,
this.onMailtoDelegateAction,
this.presentationEmail,
this.scrollController,
@@ -64,7 +62,6 @@ class CalendarEventDetailWidget extends StatelessWidget {
padding: const EdgeInsets.only(top: CalendarEventDetailWidgetStyles.fieldTopPadding),
child: EventBodyContentWidget(
content: eventDesc,
isDraggableAppActive: isDraggableAppActive,
onMailtoDelegateAction: onMailtoDelegateAction,
scrollController: scrollController,
isInsideThreadDetailView: isInsideThreadDetailView,
@@ -1,5 +1,3 @@
import 'dart:math';
import 'package:core/presentation/constants/constants_ui.dart';
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/resources/image_paths.dart';
@@ -9,15 +7,12 @@ import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:pointer_interceptor/pointer_interceptor.dart';
import 'package:tmail_ui_user/features/email/presentation/styles/email_view_styles.dart';
import 'package:tmail_ui_user/features/email/presentation/styles/event_description_detail_widget_styles.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
class EventBodyContentWidget extends StatelessWidget {
final String content;
final bool? isDraggableAppActive;
final OnMailtoDelegateAction? onMailtoDelegateAction;
final ScrollController? scrollController;
final bool isInsideThreadDetailView;
@@ -25,7 +20,6 @@ class EventBodyContentWidget extends StatelessWidget {
const EventBodyContentWidget({
super.key,
required this.content,
this.isDraggableAppActive,
this.onMailtoDelegateAction,
this.scrollController,
this.isInsideThreadDetailView = false,
@@ -50,35 +44,15 @@ class EventBodyContentWidget extends StatelessWidget {
child: Stack(
children: [
if (PlatformInfo.isWeb)
Container(
constraints: isInsideThreadDetailView
? null
: const BoxConstraints(
maxHeight: EventDescriptionDetailWidgetStyles.maxHeight,
),
Padding(
padding: const EdgeInsetsDirectional.only(end: EventDescriptionDetailWidgetStyles.webContentPadding),
child: LayoutBuilder(builder: (context, constraints) {
return Stack(
children: [
HtmlContentViewerOnWeb(
widthContent: constraints.maxWidth,
heightContent: min(
constraints.maxHeight,
EmailViewStyles.initialHtmlViewHeight,
),
contentHtml: content,
mailtoDelegate: onMailtoDelegateAction,
direction: AppUtils.getCurrentDirection(context),
scrollController: scrollController,
),
if (isDraggableAppActive == true)
PointerInterceptor(
child: SizedBox(
width: constraints.maxWidth,
height: constraints.maxHeight,
)
)
],
return HtmlContentViewerOnWeb(
widthContent: constraints.maxWidth,
contentHtml: content,
mailtoDelegate: onMailtoDelegateAction,
direction: AppUtils.getCurrentDirection(context),
scrollController: scrollController,
);
})
)