TF-1985 Fix hover item email to see the selection

(cherry picked from commit f5d53664ff7477f0bb760667aff4f06681bfd4c6)
This commit is contained in:
dab246
2023-07-10 18:09:46 +07:00
committed by Dat Vu
parent 35cb048ac0
commit e35b1d47aa
@@ -86,19 +86,19 @@ class EmailTileBuilder with BaseEmailItemTile {
); );
} }
EdgeInsets _getMarginItem() { EdgeInsetsGeometry _getMarginItem() {
if (responsiveUtils.isDesktop(_context)) { if (responsiveUtils.isDesktop(_context)) {
return const EdgeInsets.only(top: 3); return const EdgeInsets.only(top: 3);
} else { } else {
return const EdgeInsets.only(top: 3, left: 16, right: 16); return const EdgeInsetsDirectional.only(top: 3, start: 16, end: 16);
} }
} }
EdgeInsets _getPaddingItem() { EdgeInsetsGeometry _getPaddingItem() {
if (responsiveUtils.isDesktop(_context)) { if (responsiveUtils.isDesktop(_context)) {
return const EdgeInsets.symmetric(vertical: 8); return const EdgeInsets.symmetric(vertical: 8);
} else { } else {
return const EdgeInsets.only(bottom: 8, right: 8, top: 8); return const EdgeInsetsDirectional.only(bottom: 8, end: 8, top: 8);
} }
} }
@@ -222,16 +222,10 @@ class EmailTileBuilder with BaseEmailItemTile {
children: [ children: [
Row(crossAxisAlignment: CrossAxisAlignment.start, children: [ Row(crossAxisAlignment: CrossAxisAlignment.start, children: [
InkWell( InkWell(
onTap: () { onTap: () => _emailActionClick?.call(EmailActionType.selection, _presentationEmail),
if (isHoverIcon) {
_emailActionClick?.call(
EmailActionType.selection,
_presentationEmail);
}
},
onHover: (value) => _onHoverIconChanged(value, setState), onHover: (value) => _onHoverIconChanged(value, setState),
child: Padding( child: Padding(
padding: const EdgeInsets.only(top: 8, right: 12), padding: const EdgeInsetsDirectional.only(top: 8, end: 12),
child: _buildAvatarIcon())), child: _buildAvatarIcon())),
Expanded(child: Stack(alignment: Alignment.bottomCenter, Expanded(child: Stack(alignment: Alignment.bottomCenter,
children: [ children: [
@@ -239,12 +233,12 @@ class EmailTileBuilder with BaseEmailItemTile {
Row(children: [ Row(children: [
if (!_presentationEmail.hasRead) if (!_presentationEmail.hasRead)
Padding( Padding(
padding: const EdgeInsets.only(right: 5), padding: const EdgeInsetsDirectional.only(end: 5),
child: SvgPicture.asset( child: SvgPicture.asset(
imagePaths.icUnreadStatus, imagePaths.icUnreadStatus,
width: 9, width: 9,
height: 9, height: 9,
fit: BoxFit.fill)), fit: BoxFit.fill)),
Expanded(child: buildInformationSender( Expanded(child: buildInformationSender(
_context, _context,
_presentationEmail, _presentationEmail,
@@ -274,7 +268,7 @@ class EmailTileBuilder with BaseEmailItemTile {
), ),
if (_presentationEmail.hasStarred) if (_presentationEmail.hasStarred)
Padding( Padding(
padding: const EdgeInsets.only(left: 8), padding: const EdgeInsetsDirectional.only(start: 8),
child: buildIconStar(), child: buildIconStar(),
) )
], ],
@@ -354,20 +348,16 @@ class EmailTileBuilder with BaseEmailItemTile {
iconPadding: const EdgeInsetsDirectional.only(end: 12), iconPadding: const EdgeInsetsDirectional.only(end: 12),
splashRadius: 1), splashRadius: 1),
InkWell( InkWell(
onTap: () { onTap: () => _emailActionClick?.call(EmailActionType.selection, _presentationEmail),
if (isHoverIcon) {
_emailActionClick?.call(
EmailActionType.selection,
_presentationEmail);
}
},
onHover: (value) => _onHoverIconChanged(value, setState), onHover: (value) => _onHoverIconChanged(value, setState),
child: _buildAvatarIcon( child: _buildAvatarIcon(
iconSize: 32, iconSize: 32,
textStyle: const TextStyle( textStyle: const TextStyle(
fontSize: 12, fontSize: 12,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: Colors.white)), color: Colors.white
)
),
), ),
const SizedBox(width: 10), const SizedBox(width: 10),
SizedBox( SizedBox(
@@ -494,11 +484,11 @@ class EmailTileBuilder with BaseEmailItemTile {
), ),
if (_presentationEmail.hasAttachment == true) if (_presentationEmail.hasAttachment == true)
Padding( Padding(
padding: const EdgeInsets.only(left: 8), padding: const EdgeInsetsDirectional.only(start: 8),
child: buildIconAttachment()), child: buildIconAttachment()),
Padding( Padding(
padding: const EdgeInsets.only(right: 20, left: 8), padding: const EdgeInsetsDirectional.only(end: 20, start: 8),
child: buildDateTime(_context, _presentationEmail)) child: buildDateTime(_context, _presentationEmail))
]); ]);
} }
@@ -507,11 +497,11 @@ class EmailTileBuilder with BaseEmailItemTile {
buildIconAnsweredOrForwarded(width: 16, height: 16, presentationEmail: _presentationEmail), buildIconAnsweredOrForwarded(width: 16, height: 16, presentationEmail: _presentationEmail),
if (_presentationEmail.hasAttachment == true) if (_presentationEmail.hasAttachment == true)
Padding( Padding(
padding: const EdgeInsets.only(left: 8), padding: const EdgeInsetsDirectional.only(start: 8),
child: buildIconAttachment()), child: buildIconAttachment()),
Padding( Padding(
padding: const EdgeInsets.only(right: 4, left: 8), padding: const EdgeInsetsDirectional.only(end: 4, start: 8),
child: buildDateTime(_context, _presentationEmail)), child: buildDateTime(_context, _presentationEmail)),
buildIconChevron() buildIconChevron()
]); ]);
} }
@@ -541,19 +531,27 @@ class EmailTileBuilder with BaseEmailItemTile {
}); });
} }
bool get _isSelectionActivated {
return isHoverIcon ||
isHoverItem ||
_presentationEmail.selectMode == SelectMode.ACTIVE ||
(responsiveUtils.isMobile(_context) && _selectModeAll == SelectMode.ACTIVE);
}
Widget _buildAvatarIcon({double? iconSize, TextStyle? textStyle}) { Widget _buildAvatarIcon({double? iconSize, TextStyle? textStyle}) {
if (isHoverIcon || _presentationEmail.selectMode == SelectMode.ACTIVE || if (_isSelectionActivated) {
(responsiveUtils.isMobile(_context) && _selectModeAll == SelectMode.ACTIVE)) { return buildIconAvatarSelection(
return buildIconAvatarSelection( _context,
_context, _presentationEmail,
_presentationEmail, iconSize: iconSize ?? 48,
iconSize: iconSize ?? 48, textStyle: textStyle
textStyle: textStyle); );
} else { } else {
return buildIconAvatarText( return buildIconAvatarText(
_presentationEmail, _presentationEmail,
iconSize: iconSize ?? 48, iconSize: iconSize ?? 48,
textStyle: textStyle); textStyle: textStyle
);
} }
} }
} }