Skip to content

Commit 428514e

Browse files
committed
Update the hovered item when panning any viewport canvas.
Fixes #3807.
1 parent 144ca4f commit 428514e

1 file changed

Lines changed: 6 additions & 12 deletions

File tree

src/components/shared/chart/Canvas.tsx

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -390,18 +390,12 @@ export class ChartCanvas<Item> extends React.Component<
390390
};
391391

392392
override UNSAFE_componentWillReceiveProps() {
393-
// It is possible that the data backing the chart has been
394-
// changed, for instance after symbolication. Clear the
395-
// hoveredItem if the mouse no longer hovers over it.
396-
const { hoveredItem } = this.state;
397-
if (
398-
hoveredItem !== null &&
399-
!hoveredItemsAreEqual(
400-
this.props.hitTest(this._offsetX, this._offsetY),
401-
hoveredItem
402-
)
403-
) {
404-
this.setState({ hoveredItem: null });
393+
// Update the hovered item if the rendered data has changed or if
394+
// the chart has been scrolled so that a new element is under the
395+
// mouse cursor.
396+
const newHoveredItem = this.props.hitTest(this._offsetX, this._offsetY);
397+
if (!hoveredItemsAreEqual(newHoveredItem, this.state.hoveredItem)) {
398+
this.setState({ hoveredItem: newHoveredItem });
405399
}
406400
}
407401

0 commit comments

Comments
 (0)