[BUG] Some button of app bar in email view, thread view and composer view quite hard to click

This commit is contained in:
dab246
2021-10-04 15:41:10 +07:00
committed by Dat H. Pham
parent 50bf856688
commit 2362b5ad55
7 changed files with 168 additions and 111 deletions
@@ -2,6 +2,7 @@
import 'package:core/core.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:model/email/presentation_email.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
@@ -50,7 +51,6 @@ class AppBarThreadSelectModeActiveBuilder {
key: Key('app_bar_thread_select_mode_active'),
alignment: Alignment.center,
padding: EdgeInsets.symmetric(vertical: 8),
color: Colors.white,
child: MediaQuery(
data: MediaQueryData(padding: EdgeInsets.zero),
child: Row(
@@ -77,14 +77,15 @@ class AppBarThreadSelectModeActiveBuilder {
}
Widget _buildBackButton() {
return ButtonBuilder(_imagePaths.icComposerClose)
.padding(5)
.size(30)
.onPressActionClick(() {
return IconButton(
color: AppColor.baseTextColor,
icon: SvgPicture.asset(_imagePaths.icComposerClose, color: AppColor.baseTextColor, fit: BoxFit.fill),
onPressed: () => {
if (_onCloseActionClick != null) {
_onCloseActionClick!();
}})
.build();
_onCloseActionClick!()
}
}
);
}
Widget _buildListOptionButton() {
@@ -92,29 +93,44 @@ class AppBarThreadSelectModeActiveBuilder {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
ButtonBuilder(_imagePaths.icTrash).key(Key('button_remove_email_selected'))
.onPressActionClick(() {
IconButton(
key: Key('button_remove_email_selected'),
color: AppColor.baseTextColor,
icon: SvgPicture.asset(_imagePaths.icTrash, color: AppColor.baseTextColor, fit: BoxFit.fill),
onPressed: () => {
if (_onRemoveEmailActionClick != null) {
_onRemoveEmailActionClick!(_listEmail);
}})
.build(),
SizedBox(width: 10),
ButtonBuilder(_imagePaths.icEyeDisable).key(Key('button_unread_email_selected'))
.onPressActionClick(() {
_onRemoveEmailActionClick!(_listEmail)
}
}),
IconButton(
key: Key('button_unread_email_selected'),
color: AppColor.baseTextColor,
icon: SvgPicture.asset(_imagePaths.icEyeDisable, color: AppColor.baseTextColor, fit: BoxFit.fill),
onPressed: () => {
if (_onMarkAsEmailReadActionClick != null) {
_onMarkAsEmailReadActionClick!(_listEmail);
}})
.build(),
SizedBox(width: 10),
ButtonBuilder(_imagePaths.icComposerMenu).key(Key('button_menu_select_email'))
.onPressActionClick(() {
if (_onOpenContextMenuActionClick != null) {
_onOpenContextMenuActionClick!(_listEmail);
}})
.onTapActionClick((details) {
_onMarkAsEmailReadActionClick!(_listEmail)
}
}),
GestureDetector(
key: Key('button_menu_select_email'),
onTap: () => {
if (_onOpenContextMenuActionClick != null && _responsiveUtils.isMobile(_context)) {
_onOpenContextMenuActionClick!(_listEmail)
}
},
child: Padding(
padding: EdgeInsets.all(8),
child: SvgPicture.asset(
_imagePaths.icComposerMenu,
color: AppColor.baseTextColor,
width: 24,
height: 24,
fit: BoxFit.fill),
),
onTapDown: (detail) {
if (_onOpenPopupMenuActionClick != null && !_responsiveUtils.isMobile(_context)) {
final screenSize = MediaQuery.of(_context).size;
final offset = details.globalPosition;
final offset = detail.globalPosition;
final position = RelativeRect.fromLTRB(
offset.dx,
offset.dy,
@@ -122,8 +138,8 @@ class AppBarThreadSelectModeActiveBuilder {
screenSize.height - offset.dy,
);
_onOpenPopupMenuActionClick!(_listEmail, position);
}})
.build(),
}
})
]
);
}
@@ -31,30 +31,24 @@ class AppBarThreadWidgetBuilder {
this._userProfile,
);
AppBarThreadWidgetBuilder onOpenUserInformationAction(
void onOpenUserInformationAction(
OnOpenUserInformationActionClick onOpenUserInformationActionClick) {
_onOpenUserInformationActionClick = onOpenUserInformationActionClick;
return this;
}
AppBarThreadWidgetBuilder onOpenSearchMailActionClick(
OnOpenSearchMailActionClick onOpenSearchMailActionClick) {
void onOpenSearchMailActionClick(OnOpenSearchMailActionClick onOpenSearchMailActionClick) {
_onOpenSearchMailActionClick = onOpenSearchMailActionClick;
return this;
}
AppBarThreadWidgetBuilder onOpenListMailboxActionClick(
OnOpenListMailboxActionClick onOpenListMailboxActionClick) {
void onOpenListMailboxActionClick(OnOpenListMailboxActionClick onOpenListMailboxActionClick) {
_onOpenListMailboxActionClick = onOpenListMailboxActionClick;
return this;
}
Widget build() {
return Container(
key: Key('app_bar_thread_widget'),
alignment: Alignment.center,
padding: EdgeInsets.only(top: 8, bottom: 2),
color: Colors.white,
padding: EdgeInsets.only(top: 8, bottom: 8),
child: MediaQuery(
data: MediaQueryData(padding: EdgeInsets.zero),
child: Row(
@@ -88,7 +82,8 @@ class AppBarThreadWidgetBuilder {
return Padding(
padding: EdgeInsets.only(left: 16),
child: IconButton(
icon: SvgPicture.asset(_imagePaths.icSearch, width: 24, height: 24, fit: BoxFit.fill),
color: AppColor.baseTextColor,
icon: SvgPicture.asset(_imagePaths.icSearch, color: AppColor.baseTextColor, fit: BoxFit.fill),
onPressed: () => {
if (_onOpenSearchMailActionClick != null) {
_onOpenSearchMailActionClick!()
@@ -132,10 +132,14 @@ class EmailTileBuilder {
maxLines: 1,
overflow:TextOverflow.ellipsis,
style: TextStyle(fontSize: 12, color: AppColor.baseTextColor))),
if (_presentationEmail.hasAttachment == true) ButtonBuilder(_imagePaths.icShare).padding(2).build(),
SizedBox(width: 2),
if (_presentationEmail.hasAttachment == true)
ButtonBuilder(_imagePaths.icShare)
.padding(5)
.size(20)
.build(),
ButtonBuilder(_presentationEmail.isFlaggedEmail() ? _imagePaths.icFlagged : _imagePaths.icFlag)
.padding(2)
.padding(5)
.size(20)
.onPressActionClick(() {
if (_onMarkAsStarEmailActionClick != null) {
_onMarkAsStarEmailActionClick!(_presentationEmail);