Skip to content

Commit

Permalink
fix: on hover/enter issue for view items (AppFlowy-IO#3528)
Browse files Browse the repository at this point in the history
  • Loading branch information
Xazin authored Sep 25, 2023
1 parent 0996f5f commit 949dab9
Showing 1 changed file with 18 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,11 @@ class _FlowyHoverState extends State<FlowyHover> {

@override
void didUpdateWidget(covariant FlowyHover oldWidget) {
if (widget.resetHoverOnRebuild == true) {
if (widget.resetHoverOnRebuild) {
// Reset the _onHover to false when the parent widget get rebuild.
_onHover = false;
}

super.didUpdateWidget(oldWidget);
}

Expand All @@ -58,28 +59,29 @@ class _FlowyHoverState extends State<FlowyHover> {
opaque: false,
onHover: (p) {
if (_onHover) return;

if (widget.buildWhenOnHover?.call() ?? true) {
setState(() => _onHover = true);
if (widget.onHover != null) {
widget.onHover!(true);
}
}
_setOnHover(true);
},
onEnter: (p) {
if (_onHover) return;
_setOnHover(true);
},
onExit: (p) {
if (_onHover == false) return;

if (widget.buildWhenOnHover?.call() ?? true) {
setState(() => _onHover = false);
if (widget.onHover != null) {
widget.onHover!(false);
}
}
if (!_onHover) return;
_setOnHover(false);
},
child: renderWidget(),
);
}

void _setOnHover(bool isHovering) {
if (widget.buildWhenOnHover?.call() ?? true) {
setState(() => _onHover = isHovering);
if (widget.onHover != null) {
widget.onHover!(isHovering);
}
}
}

Widget renderWidget() {
var showHover = _onHover;
if (!showHover && widget.isSelected != null) {
Expand Down

0 comments on commit 949dab9

Please sign in to comment.