Преглед изворни кода

fix: do not rebuild hover on item selection (#3423)

Mathias Mogensen пре 1 година
родитељ
комит
b700f95c7f

+ 10 - 8
frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_item.dart

@@ -249,21 +249,23 @@ class SingleInnerViewItem extends StatefulWidget {
 }
 
 class _SingleInnerViewItemState extends State<SingleInnerViewItem> {
+  bool _isHovering = false;
+
   @override
   Widget build(BuildContext context) {
     if (widget.isFeedback) {
       return _buildViewItem(false);
     }
 
-    return FlowyHover(
-      style: HoverStyle(
-        hoverColor: Theme.of(context).colorScheme.secondary,
+    return MouseRegion(
+      onEnter: (_) => setState(() => _isHovering = true),
+      onExit: (_) => setState(() => _isHovering = false),
+      child: FlowyHover(
+        isSelected: () =>
+            widget.showActions ||
+            getIt<MenuSharedState>().latestOpenView?.id == widget.view.id,
+        child: _buildViewItem(_isHovering),
       ),
-      buildWhenOnHover: () => !widget.showActions,
-      builder: (_, onHover) => _buildViewItem(onHover),
-      isSelected: () =>
-          widget.showActions ||
-          getIt<MenuSharedState>().latestOpenView?.id == widget.view.id,
     );
   }