TF-2684 Fix difficult to select text in blue bar on responsive tablet

This commit is contained in:
dab246
2024-03-27 01:42:10 +07:00
committed by Dat H. Pham
parent db7334669b
commit f85691ae15
6 changed files with 33 additions and 43 deletions
@@ -6,7 +6,6 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
import 'package:pointer_interceptor/pointer_interceptor.dart';
import 'package:tmail_ui_user/features/base/widget/scrollbar_list_view.dart';
import 'package:tmail_ui_user/features/composer/presentation/model/suggestion_email_address.dart';
import 'package:tmail_ui_user/features/contact/presentation/contact_controller.dart';
import 'package:tmail_ui_user/features/contact/presentation/utils/contact_utils.dart';
@@ -1,6 +1,6 @@
import 'dart:collection';
import 'package:collection/collection.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@@ -114,7 +114,7 @@ class EmailSupervisorController extends GetxController {
void _jumpToPage(int page) {
if (PlatformInfo.isWeb) {
pageController?.jumpToPage(page);
onPageChanged(page);
} else {
pageController?.animateToPage(
page,
@@ -124,11 +124,12 @@ class EmailSupervisorController extends GetxController {
}
void updateScrollPhysicPageView(bool isScrollPageViewActivated) {
log('EmailSupervisorController::updateScrollPhysicPageView:isScrollPageViewActivated: $isScrollPageViewActivated');
if (PlatformInfo.isWeb || !isScrollPageViewActivated) {
scrollPhysicsPageView.value = const NeverScrollableScrollPhysics();
} else {
scrollPhysicsPageView.value = null;
if (PlatformInfo.isMobile) {
if (!isScrollPageViewActivated) {
scrollPhysicsPageView.value = const NeverScrollableScrollPhysics();
} else {
scrollPhysicsPageView.value = null;
}
}
}
@@ -2,7 +2,6 @@ import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/views/button/tmail_button_widget.dart';
import 'package:core/presentation/views/html_viewer/html_content_viewer_on_web_widget.dart';
import 'package:core/presentation/views/html_viewer/html_content_viewer_widget.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/direction_utils.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
@@ -126,10 +125,11 @@ class EmailView extends GetWidget<SingleEmailController> {
}),
Expanded(
child: LayoutBuilder(builder: (context, constraints) {
log('EmailView::build: EMAIL_BODY_MAX_HEIGHT = ${constraints.maxHeight}');
return Obx(() {
if (controller.emailSupervisorController.supportedPageView.isTrue) {
final currentListEmail = controller.emailSupervisorController.currentListEmail;
bool supportedPageView = controller.emailSupervisorController.supportedPageView.isTrue && PlatformInfo.isMobile;
final currentListEmail = controller.emailSupervisorController.currentListEmail;
if (supportedPageView) {
return PageView.builder(
physics: controller.emailSupervisorController.scrollPhysicsPageView.value,
itemCount: currentListEmail.length,
@@ -37,8 +37,7 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
color: Colors.white,
return Padding(
padding: const EdgeInsetsDirectional.only(start: 16, end: 16, top: 16),
child: Row(
crossAxisAlignment: emailSelected.numberOfAllEmailAddress() > 0
@@ -55,32 +54,26 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
children: [
if (emailSelected.from?.isNotEmpty == true)
Row(children: [
Expanded(
child: Row(
children: [
Flexible(child: Transform(
transform: Matrix4.translationValues(-5.0, 0.0, 0.0),
child: EmailSenderBuilder(
emailAddress: emailSelected.from!.first,
openEmailAddressDetailAction: openEmailAddressDetailAction,
)
)),
if (!emailSelected.isSubscribed && emailUnsubscribe != null && !responsiveUtils.isPortraitMobile(context))
TMailButtonWidget.fromText(
text: AppLocalizations.of(context).unsubscribe,
textStyle: const TextStyle(
fontWeight: FontWeight.normal,
fontSize: 14,
color: AppColor.colorTextBody,
decoration: TextDecoration.underline,
),
padding: const EdgeInsetsDirectional.symmetric(vertical: 5, horizontal: 8),
backgroundColor: Colors.transparent,
onTapActionCallback: () => onEmailActionClick?.call(emailSelected, EmailActionType.unsubscribe),
),
],
)
),
Flexible(child: Transform(
transform: Matrix4.translationValues(-5.0, 0.0, 0.0),
child: EmailSenderBuilder(
emailAddress: emailSelected.from!.first,
openEmailAddressDetailAction: openEmailAddressDetailAction,
)
)),
if (!emailSelected.isSubscribed && emailUnsubscribe != null && !responsiveUtils.isPortraitMobile(context))
TMailButtonWidget.fromText(
text: AppLocalizations.of(context).unsubscribe,
textStyle: const TextStyle(
fontWeight: FontWeight.normal,
fontSize: 14,
color: AppColor.colorTextBody,
decoration: TextDecoration.underline,
),
padding: const EdgeInsetsDirectional.symmetric(vertical: 5, horizontal: 8),
backgroundColor: Colors.transparent,
onTapActionCallback: () => onEmailActionClick?.call(emailSelected, EmailActionType.unsubscribe),
),
ReceivedTimeBuilder(emailSelected: emailSelected),
]),
if (emailSelected.numberOfAllEmailAddress() > 0)
@@ -1,12 +1,10 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/views/list/tree_view.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:model/mailbox/expand_mode.dart';
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
import 'package:tmail_ui_user/features/base/widget/scrollbar_list_view.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
@@ -8,7 +8,6 @@ import 'package:model/model.dart';
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
import 'package:tmail_ui_user/features/base/mixin/popup_menu_widget_mixin.dart';
import 'package:tmail_ui_user/features/base/widget/compose_floating_button.dart';
import 'package:tmail_ui_user/features/base/widget/scrollbar_list_view.dart';
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/email_action_cupertino_action_sheet_action_builder.dart';
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';