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:get/get.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
import 'package:pointer_interceptor/pointer_interceptor.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/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/contact_controller.dart';
import 'package:tmail_ui_user/features/contact/presentation/utils/contact_utils.dart'; import 'package:tmail_ui_user/features/contact/presentation/utils/contact_utils.dart';
@@ -1,6 +1,6 @@
import 'dart:collection'; import 'dart:collection';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/platform_info.dart'; import 'package:core/utils/platform_info.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -114,7 +114,7 @@ class EmailSupervisorController extends GetxController {
void _jumpToPage(int page) { void _jumpToPage(int page) {
if (PlatformInfo.isWeb) { if (PlatformInfo.isWeb) {
pageController?.jumpToPage(page); onPageChanged(page);
} else { } else {
pageController?.animateToPage( pageController?.animateToPage(
page, page,
@@ -124,11 +124,12 @@ class EmailSupervisorController extends GetxController {
} }
void updateScrollPhysicPageView(bool isScrollPageViewActivated) { void updateScrollPhysicPageView(bool isScrollPageViewActivated) {
log('EmailSupervisorController::updateScrollPhysicPageView:isScrollPageViewActivated: $isScrollPageViewActivated'); if (PlatformInfo.isMobile) {
if (PlatformInfo.isWeb || !isScrollPageViewActivated) { if (!isScrollPageViewActivated) {
scrollPhysicsPageView.value = const NeverScrollableScrollPhysics(); scrollPhysicsPageView.value = const NeverScrollableScrollPhysics();
} else { } else {
scrollPhysicsPageView.value = null; 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/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_on_web_widget.dart';
import 'package:core/presentation/views/html_viewer/html_content_viewer_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/direction_utils.dart';
import 'package:core/utils/platform_info.dart'; import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -126,10 +125,11 @@ class EmailView extends GetWidget<SingleEmailController> {
}), }),
Expanded( Expanded(
child: LayoutBuilder(builder: (context, constraints) { child: LayoutBuilder(builder: (context, constraints) {
log('EmailView::build: EMAIL_BODY_MAX_HEIGHT = ${constraints.maxHeight}');
return Obx(() { return Obx(() {
if (controller.emailSupervisorController.supportedPageView.isTrue) { bool supportedPageView = controller.emailSupervisorController.supportedPageView.isTrue && PlatformInfo.isMobile;
final currentListEmail = controller.emailSupervisorController.currentListEmail; final currentListEmail = controller.emailSupervisorController.currentListEmail;
if (supportedPageView) {
return PageView.builder( return PageView.builder(
physics: controller.emailSupervisorController.scrollPhysicsPageView.value, physics: controller.emailSupervisorController.scrollPhysicsPageView.value,
itemCount: currentListEmail.length, itemCount: currentListEmail.length,
@@ -37,8 +37,7 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Padding(
color: Colors.white,
padding: const EdgeInsetsDirectional.only(start: 16, end: 16, top: 16), padding: const EdgeInsetsDirectional.only(start: 16, end: 16, top: 16),
child: Row( child: Row(
crossAxisAlignment: emailSelected.numberOfAllEmailAddress() > 0 crossAxisAlignment: emailSelected.numberOfAllEmailAddress() > 0
@@ -55,32 +54,26 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
children: [ children: [
if (emailSelected.from?.isNotEmpty == true) if (emailSelected.from?.isNotEmpty == true)
Row(children: [ Row(children: [
Expanded( Flexible(child: Transform(
child: Row( transform: Matrix4.translationValues(-5.0, 0.0, 0.0),
children: [ child: EmailSenderBuilder(
Flexible(child: Transform( emailAddress: emailSelected.from!.first,
transform: Matrix4.translationValues(-5.0, 0.0, 0.0), openEmailAddressDetailAction: openEmailAddressDetailAction,
child: EmailSenderBuilder( )
emailAddress: emailSelected.from!.first, )),
openEmailAddressDetailAction: openEmailAddressDetailAction, if (!emailSelected.isSubscribed && emailUnsubscribe != null && !responsiveUtils.isPortraitMobile(context))
) TMailButtonWidget.fromText(
)), text: AppLocalizations.of(context).unsubscribe,
if (!emailSelected.isSubscribed && emailUnsubscribe != null && !responsiveUtils.isPortraitMobile(context)) textStyle: const TextStyle(
TMailButtonWidget.fromText( fontWeight: FontWeight.normal,
text: AppLocalizations.of(context).unsubscribe, fontSize: 14,
textStyle: const TextStyle( color: AppColor.colorTextBody,
fontWeight: FontWeight.normal, decoration: TextDecoration.underline,
fontSize: 14, ),
color: AppColor.colorTextBody, padding: const EdgeInsetsDirectional.symmetric(vertical: 5, horizontal: 8),
decoration: TextDecoration.underline, backgroundColor: Colors.transparent,
), onTapActionCallback: () => onEmailActionClick?.call(emailSelected, EmailActionType.unsubscribe),
padding: const EdgeInsetsDirectional.symmetric(vertical: 5, horizontal: 8), ),
backgroundColor: Colors.transparent,
onTapActionCallback: () => onEmailActionClick?.call(emailSelected, EmailActionType.unsubscribe),
),
],
)
),
ReceivedTimeBuilder(emailSelected: emailSelected), ReceivedTimeBuilder(emailSelected: emailSelected),
]), ]),
if (emailSelected.numberOfAllEmailAddress() > 0) if (emailSelected.numberOfAllEmailAddress() > 0)
@@ -1,12 +1,10 @@
import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/state/success.dart'; import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/views/list/tree_view.dart'; import 'package:core/presentation/views/list/tree_view.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:model/mailbox/expand_mode.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/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/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_categories.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.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/app_loader_mixin.dart';
import 'package:tmail_ui_user/features/base/mixin/popup_menu_widget_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/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/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/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'; import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';