From be84c906909172736f2d7221f04b108c0c0731cc Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 29 Jul 2025 16:41:50 +0700 Subject: [PATCH] TF-3914 Apply new style for actions on hover in list Signed-off-by: dab246 --- .../styles/item_email_tile_styles.dart | 1 + ...esktop_list_email_action_hover_widget.dart | 34 ++++++++++++------- .../web_tablet_body_email_item_widget.dart | 24 ++++++------- 3 files changed, 34 insertions(+), 25 deletions(-) diff --git a/lib/features/thread/presentation/styles/item_email_tile_styles.dart b/lib/features/thread/presentation/styles/item_email_tile_styles.dart index 715c3d440..8ca09baa9 100644 --- a/lib/features/thread/presentation/styles/item_email_tile_styles.dart +++ b/lib/features/thread/presentation/styles/item_email_tile_styles.dart @@ -10,6 +10,7 @@ class ItemEmailTileStyles { static const double horizontalTitleGap = 8.0; static const Color actionIconColor = AppColor.steelGray200; + static const Color actionIconHoverColor = AppColor.steelGrayA540; static EdgeInsetsGeometry getSpaceCalendarEventIcon(BuildContext context, ResponsiveUtils responsiveUtils) { if (responsiveUtils.isScreenWithShortestSide(context)) { diff --git a/lib/features/thread/presentation/widgets/desktop_list_email_action_hover_widget.dart b/lib/features/thread/presentation/widgets/desktop_list_email_action_hover_widget.dart index 4693b8313..7f766459d 100644 --- a/lib/features/thread/presentation/widgets/desktop_list_email_action_hover_widget.dart +++ b/lib/features/thread/presentation/widgets/desktop_list_email_action_hover_widget.dart @@ -47,9 +47,9 @@ class _DesktopListEmailActionHoverWidgetState if (widget.isHovered) ...[ TMailButtonWidget.fromIcon( icon: _imagePaths.icOpenInNewTab, - iconColor: ItemEmailTileStyles.actionIconColor, + iconColor: ItemEmailTileStyles.actionIconHoverColor, iconSize: _getIconSize(), - padding: _getPaddingIcon(context), + padding: _getPaddingIcon(), backgroundColor: Colors.transparent, tooltipMessage: AppLocalizations.of(context).openInNewTab, onTapActionCallback: () => widget.emailActionClick?.call( @@ -62,9 +62,10 @@ class _DesktopListEmailActionHoverWidgetState icon: widget.presentationEmail.hasRead ? _imagePaths.icUnread : _imagePaths.icRead, - iconColor: ItemEmailTileStyles.actionIconColor, + iconColor: ItemEmailTileStyles.actionIconHoverColor, iconSize: _getIconSize(), - padding: _getPaddingIcon(context), + padding: _getPaddingIcon(), + margin: _getMarginIcon(), backgroundColor: Colors.transparent, tooltipMessage: widget.presentationEmail.hasRead ? AppLocalizations.of(context).mark_as_unread @@ -80,9 +81,10 @@ class _DesktopListEmailActionHoverWidgetState widget.mailboxContain?.isDrafts == false) ...[ TMailButtonWidget.fromIcon( icon: _imagePaths.icMove, - iconColor: ItemEmailTileStyles.actionIconColor, + iconColor: ItemEmailTileStyles.actionIconHoverColor, iconSize: _getIconSize(), - padding: _getPaddingIcon(context), + padding: _getPaddingIcon(), + margin: _getMarginIcon(), backgroundColor: Colors.transparent, tooltipMessage: AppLocalizations.of(context).move, onTapActionCallback: () => widget.emailActionClick?.call( @@ -93,9 +95,10 @@ class _DesktopListEmailActionHoverWidgetState ], TMailButtonWidget.fromIcon( icon: _imagePaths.icDeleteComposer, - iconColor: ItemEmailTileStyles.actionIconColor, - iconSize: 16, - padding: _getPaddingIcon(context), + iconColor: ItemEmailTileStyles.actionIconHoverColor, + iconSize: _getIconSize(), + padding: _getPaddingIcon(), + margin: _getMarginIcon(), backgroundColor: Colors.transparent, tooltipMessage: widget.canDeletePermanently ? AppLocalizations.of(context).delete_permanently @@ -111,9 +114,10 @@ class _DesktopListEmailActionHoverWidgetState if (_shouldShowPopupMenu) ...[ TMailButtonWidget.fromIcon( icon: _imagePaths.icMoreVertical, - iconColor: ItemEmailTileStyles.actionIconColor, + iconColor: ItemEmailTileStyles.actionIconHoverColor, iconSize: _getIconSize(), - padding: _getPaddingIcon(context), + padding: _getPaddingIcon(), + margin: _getMarginIcon(), backgroundColor: _popupMenuVisible ? Theme.of(context).colorScheme.outline.withOpacity(0.08) : Colors.transparent, @@ -150,12 +154,16 @@ class _DesktopListEmailActionHoverWidgetState return Row(children: listActionWidget); } - double _getIconSize() => 18; + double _getIconSize() => 16; - EdgeInsets _getPaddingIcon(BuildContext context) { + EdgeInsetsGeometry _getPaddingIcon() { return const EdgeInsets.all(5); } + EdgeInsetsGeometry _getMarginIcon() { + return const EdgeInsetsDirectional.only(start: 11); + } + bool get _shouldShowPopupMenu => widget.isHovered || _popupMenuVisible; void _onPopupMenuVisibleChange(bool visible) { diff --git a/lib/features/thread/presentation/widgets/web_tablet_body_email_item_widget.dart b/lib/features/thread/presentation/widgets/web_tablet_body_email_item_widget.dart index 6d58f09cd..d72099a95 100644 --- a/lib/features/thread/presentation/widgets/web_tablet_body_email_item_widget.dart +++ b/lib/features/thread/presentation/widgets/web_tablet_body_email_item_widget.dart @@ -186,9 +186,9 @@ class _WebTabletBodyEmailItemWidgetState if (_isHover) ...[ TMailButtonWidget.fromIcon( icon: _imagePaths.icOpenInNewTab, - iconColor: ItemEmailTileStyles.actionIconColor, + iconColor: ItemEmailTileStyles.actionIconHoverColor, iconSize: _getIconSize(), - padding: _getPaddingIcon(context), + padding: _getPaddingIcon(), backgroundColor: Colors.transparent, tooltipMessage: AppLocalizations.of(context).openInNewTab, @@ -203,9 +203,9 @@ class _WebTabletBodyEmailItemWidgetState icon: widget.presentationEmail.hasRead ? _imagePaths.icUnread : _imagePaths.icRead, - iconColor: ItemEmailTileStyles.actionIconColor, + iconColor: ItemEmailTileStyles.actionIconHoverColor, iconSize: _getIconSize(), - padding: _getPaddingIcon(context), + padding: _getPaddingIcon(), backgroundColor: Colors.transparent, tooltipMessage: widget.presentationEmail.hasRead ? AppLocalizations.of(context).mark_as_unread @@ -222,9 +222,9 @@ class _WebTabletBodyEmailItemWidgetState widget.mailboxContain?.isDrafts == false) ...[ TMailButtonWidget.fromIcon( icon: _imagePaths.icMove, - iconColor: ItemEmailTileStyles.actionIconColor, + iconColor: ItemEmailTileStyles.actionIconHoverColor, iconSize: _getIconSize(), - padding: _getPaddingIcon(context), + padding: _getPaddingIcon(), backgroundColor: Colors.transparent, tooltipMessage: AppLocalizations.of(context).move, onTapActionCallback: () => @@ -236,9 +236,9 @@ class _WebTabletBodyEmailItemWidgetState ], TMailButtonWidget.fromIcon( icon: _imagePaths.icDeleteComposer, - iconColor: ItemEmailTileStyles.actionIconColor, - iconSize: 14, - padding: _getPaddingIcon(context), + iconColor: ItemEmailTileStyles.actionIconHoverColor, + iconSize: _getIconSize(), + padding: _getPaddingIcon(), backgroundColor: Colors.transparent, tooltipMessage: widget.canDeletePermanently ? AppLocalizations.of(context).delete_permanently @@ -255,9 +255,9 @@ class _WebTabletBodyEmailItemWidgetState if (_shouldShowPopupMenu) TMailButtonWidget.fromIcon( icon: _imagePaths.icMoreVertical, - iconColor: ItemEmailTileStyles.actionIconColor, + iconColor: ItemEmailTileStyles.actionIconHoverColor, iconSize: _getIconSize(), - padding: _getPaddingIcon(context), + padding: _getPaddingIcon(), backgroundColor: _popupMenuVisible ? Theme.of(context) .colorScheme @@ -364,7 +364,7 @@ class _WebTabletBodyEmailItemWidgetState double _getIconSize() => 16; - EdgeInsets _getPaddingIcon(BuildContext context) { + EdgeInsetsGeometry _getPaddingIcon() { return const EdgeInsets.all(5); }