TF-1985 Fix hover item email to see the selection
(cherry picked from commit f5d53664ff7477f0bb760667aff4f06681bfd4c6)
This commit is contained in:
@@ -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
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user