TF-2057 Hide email content as html when has calendar event
(cherry picked from commit 033343a3016905f459c547cf816c12ecfeba6958)
This commit is contained in:
@@ -23,6 +23,7 @@ import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
|||||||
import 'package:tmail_ui_user/features/base/widget/custom_scroll_behavior.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/base/widget/popup_item_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/state/get_email_content_state.dart';
|
import 'package:tmail_ui_user/features/email/domain/state/get_email_content_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/domain/state/parse_calendar_event_state.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/controller/single_email_controller.dart';
|
import 'package:tmail_ui_user/features/email/presentation/controller/single_email_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/styles/email_view_styles.dart';
|
import 'package:tmail_ui_user/features/email/presentation/styles/email_view_styles.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/app_bar_mail_widget_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/app_bar_mail_widget_builder.dart';
|
||||||
@@ -229,7 +230,7 @@ class EmailView extends GetWidget<SingleEmailController> with AppLoaderMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildEmailBody(BuildContext context, PresentationEmail email) {
|
Widget _buildEmailBody(BuildContext context, PresentationEmail email) {
|
||||||
if (PlatformInfo.isWeb) {
|
if (PlatformInfo.isWeb && !email.hasCalendarEvent) {
|
||||||
return _buildEmailMessage(context, email);
|
return _buildEmailMessage(context, email);
|
||||||
} else {
|
} else {
|
||||||
return SingleChildScrollView(
|
return SingleChildScrollView(
|
||||||
@@ -282,63 +283,55 @@ class EmailView extends GetWidget<SingleEmailController> with AppLoaderMixin {
|
|||||||
imagePaths: imagePaths,
|
imagePaths: imagePaths,
|
||||||
responsiveUtils: responsiveUtils,
|
responsiveUtils: responsiveUtils,
|
||||||
),
|
),
|
||||||
_buildLoadingContentView(),
|
|
||||||
_buildAttachments(context),
|
_buildAttachments(context),
|
||||||
Obx(() {
|
_buildLoadingContentView(email),
|
||||||
if (controller.calendarEvent.value != null) {
|
if (email.hasCalendarEvent)
|
||||||
return CalendarEventInformationWidget(
|
Obx(() {
|
||||||
calendarEvent: controller.calendarEvent.value!
|
if (controller.calendarEvent.value != null) {
|
||||||
);
|
return Column(
|
||||||
} else {
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
return const SizedBox.shrink();
|
mainAxisSize: MainAxisSize.min,
|
||||||
}
|
children: [
|
||||||
}),
|
CalendarEventInformationWidget(
|
||||||
Obx(() {
|
calendarEvent: controller.calendarEvent.value!
|
||||||
if (controller.calendarEvent.value != null) {
|
),
|
||||||
return CalendarEventActionBannerWidget(
|
CalendarEventActionBannerWidget(
|
||||||
calendarEvent: controller.calendarEvent.value!,
|
calendarEvent: controller.calendarEvent.value!,
|
||||||
listFromEmailAddress: controller.currentEmail?.from
|
listFromEmailAddress: controller.currentEmail?.from
|
||||||
);
|
),
|
||||||
} else {
|
CalendarEventDetailWidget(
|
||||||
return const SizedBox.shrink();
|
calendarEvent: controller.calendarEvent.value!
|
||||||
}
|
),
|
||||||
}),
|
],
|
||||||
Obx(() {
|
);
|
||||||
if (controller.calendarEvent.value != null) {
|
} else {
|
||||||
return CalendarEventDetailWidget(
|
return const SizedBox.shrink();
|
||||||
calendarEvent: controller.calendarEvent.value!
|
}
|
||||||
);
|
})
|
||||||
} else {
|
|
||||||
return const SizedBox.shrink();
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
if (PlatformInfo.isWeb)
|
|
||||||
Expanded(child: Padding(
|
|
||||||
padding: const EdgeInsetsDirectional.only(start: 16, bottom: 16),
|
|
||||||
child: _buildEmailContent(context, constraints, email)
|
|
||||||
))
|
|
||||||
else
|
else
|
||||||
Padding(
|
_buildEmailContent(context, constraints, email)
|
||||||
padding: const EdgeInsetsDirectional.symmetric(
|
|
||||||
vertical: EmailViewStyles.mobileContentVerticalMargin,
|
|
||||||
horizontal: EmailViewStyles.mobileContentHorizontalMargin
|
|
||||||
),
|
|
||||||
child: _buildEmailContent(context, constraints, email)
|
|
||||||
)
|
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildLoadingContentView() {
|
Widget _buildLoadingContentView(PresentationEmail selectedEmail) {
|
||||||
return Obx(() {
|
return Obx(() {
|
||||||
return controller.viewState.value.fold(
|
return controller.viewState.value.fold(
|
||||||
(failure) => const SizedBox.shrink(),
|
(failure) => const SizedBox.shrink(),
|
||||||
(success) {
|
(success) {
|
||||||
if (success is GetEmailContentLoading) {
|
if (selectedEmail.hasCalendarEvent) {
|
||||||
return loadingWidget;
|
if ((success is GetEmailContentLoading || success is ParseCalendarEventLoading)) {
|
||||||
|
return loadingWidget;
|
||||||
|
} else {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return const SizedBox.shrink();
|
if (success is GetEmailContentLoading) {
|
||||||
|
return loadingWidget;
|
||||||
|
} else {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -473,25 +466,36 @@ class EmailView extends GetWidget<SingleEmailController> with AppLoaderMixin {
|
|||||||
final allEmailContents = controller.emailContents.value;
|
final allEmailContents = controller.emailContents.value;
|
||||||
|
|
||||||
if (PlatformInfo.isWeb) {
|
if (PlatformInfo.isWeb) {
|
||||||
return HtmlContentViewerOnWeb(
|
return Expanded(
|
||||||
widthContent: constraints.maxWidth,
|
child: Padding(
|
||||||
heightContent: responsiveUtils.getSizeScreenHeight(context),
|
padding: const EdgeInsetsDirectional.only(start: 16, bottom: 16),
|
||||||
contentHtml: allEmailContents ?? "",
|
child: HtmlContentViewerOnWeb(
|
||||||
controller: HtmlViewerControllerForWeb(),
|
widthContent: constraints.maxWidth,
|
||||||
mailtoDelegate: (uri) => controller.openMailToLink(uri),
|
heightContent: responsiveUtils.getSizeScreenHeight(context),
|
||||||
direction: AppUtils.getCurrentDirection(context),
|
contentHtml: allEmailContents ?? "",
|
||||||
|
controller: HtmlViewerControllerForWeb(),
|
||||||
|
mailtoDelegate: (uri) => controller.openMailToLink(uri),
|
||||||
|
direction: AppUtils.getCurrentDirection(context),
|
||||||
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return HtmlContentViewer(
|
return Padding(
|
||||||
heightContent: responsiveUtils.getSizeScreenHeight(context),
|
padding: const EdgeInsetsDirectional.symmetric(
|
||||||
contentHtml: allEmailContents ?? "",
|
vertical: EmailViewStyles.mobileContentVerticalMargin,
|
||||||
mailtoDelegate: (uri) async => controller.openMailToLink(uri),
|
horizontal: EmailViewStyles.mobileContentHorizontalMargin
|
||||||
onScrollHorizontalEnd: controller.toggleScrollPhysicsPagerView,
|
),
|
||||||
onWebViewLoaded: (isScrollPageViewActivated) {
|
child: HtmlContentViewer(
|
||||||
log('EmailView::_buildEmailContent(): isScrollPageViewActivated: $isScrollPageViewActivated');
|
heightContent: responsiveUtils.getSizeScreenHeight(context),
|
||||||
controller.emailSupervisorController.updateScrollPhysicPageView(isScrollPageViewActivated: isScrollPageViewActivated);
|
contentHtml: allEmailContents ?? "",
|
||||||
},
|
mailtoDelegate: (uri) async => controller.openMailToLink(uri),
|
||||||
direction: AppUtils.getCurrentDirection(context),
|
onScrollHorizontalEnd: controller.toggleScrollPhysicsPagerView,
|
||||||
|
onWebViewLoaded: (isScrollPageViewActivated) {
|
||||||
|
log('EmailView::_buildEmailContent(): isScrollPageViewActivated: $isScrollPageViewActivated');
|
||||||
|
controller.emailSupervisorController.updateScrollPhysicPageView(isScrollPageViewActivated: isScrollPageViewActivated);
|
||||||
|
},
|
||||||
|
direction: AppUtils.getCurrentDirection(context),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user