From 66e9b5f7c5675d365cfa0462783a7a34bddbb1be Mon Sep 17 00:00:00 2001 From: dab246 Date: Mon, 1 Aug 2022 11:22:40 +0700 Subject: [PATCH] TF-694 Fix continuous flashing effect when hovering avatar icon --- .../widgets/email_tile_web_builder.dart | 36 ++++++------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/lib/features/thread/presentation/widgets/email_tile_web_builder.dart b/lib/features/thread/presentation/widgets/email_tile_web_builder.dart index a9f0451bd..d49317bc0 100644 --- a/lib/features/thread/presentation/widgets/email_tile_web_builder.dart +++ b/lib/features/thread/presentation/widgets/email_tile_web_builder.dart @@ -1,4 +1,3 @@ -import 'dart:async'; import 'package:core/core.dart'; import 'package:flutter/material.dart'; @@ -30,8 +29,6 @@ class EmailTileBuilder { bool isHoverItem = false; bool isHoverIcon = false; - Timer? _debounceTimeIcon; - Timer? _debounceTimeItem; EmailTileBuilder( this._context, @@ -51,34 +48,19 @@ class EmailTileBuilder { } void _onHoverIconChanged(bool isHover, StateSetter setState) { - if (_debounceTimeIcon?.isActive ?? false) _debounceTimeIcon?.cancel(); - _debounceTimeIcon = Timer(const Duration(milliseconds: 100), () { - setState(() { - isHoverIcon = isHover; - }); - }); + setState(() => isHoverIcon = isHover); } void _onHoverItemChanged(bool isHover, StateSetter setState) { - if (_debounceTimeItem?.isActive ?? false) _debounceTimeItem?.cancel(); - _debounceTimeItem = Timer(const Duration(milliseconds: 200), () { - setState(() { - isHoverItem = isHover; - }); - }); + setState(() => isHoverItem = isHover); } Widget build() { - return Theme( - key: const Key('thread_tile'), - data: ThemeData(splashColor: Colors.transparent, highlightColor: Colors.transparent), - child: ResponsiveWidget( - responsiveUtils: _responsiveUtils, - mobile: _wrapContainerForTile(_buildListTile()), - tablet: _wrapContainerForTile(_buildListTileTablet()), - tabletLarge: _wrapContainerForTile(_buildListTileTablet()), - desktop: _wrapContainerForTile(_buildListTileForDesktop()), - ) + return ResponsiveWidget( + responsiveUtils: _responsiveUtils, + mobile: _wrapContainerForTile(_buildListTile()), + tablet: _wrapContainerForTile(_buildListTileTablet()), + desktop: _wrapContainerForTile(_buildListTileForDesktop()), ); } @@ -602,6 +584,9 @@ class EmailTileBuilder { || (_responsiveUtils.isMobile(_context) && _selectModeAll == SelectMode.ACTIVE)) { return Container( color: Colors.transparent, + width: iconSize ?? 48, + height: iconSize ?? 48, + alignment: Alignment.center, padding: _responsiveUtils.isDesktop(_context) ? const EdgeInsets.symmetric(horizontal: 4) : const EdgeInsets.all(12), @@ -634,7 +619,6 @@ class EmailTileBuilder { } } - FontWeight _buildFontForReadEmail() { return !_presentationEmail.hasRead ? FontWeight.w600 : FontWeight.normal; }