From: Stas Vilchik Date: Thu, 11 Oct 2018 08:40:08 +0000 (+0200) Subject: SONAR-11175 fix timeline tooltip position after page resize X-Git-Tag: 7.5~299 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=a0d8fee001d9e074da508fc1e04031e239f1c490;p=sonarqube.git SONAR-11175 fix timeline tooltip position after page resize --- diff --git a/server/sonar-web/src/main/js/components/charts/AdvancedTimeline.tsx b/server/sonar-web/src/main/js/components/charts/AdvancedTimeline.tsx index 60fc3e60eb4..e49532d7fe0 100644 --- a/server/sonar-web/src/main/js/components/charts/AdvancedTimeline.tsx +++ b/server/sonar-web/src/main/js/components/charts/AdvancedTimeline.tsx @@ -59,7 +59,6 @@ type YScale = any; interface State { maxXRange: number[]; mouseOver?: boolean; - mouseOverlayPos?: ClientRect | DOMRect; selectedDate?: Date; selectedDateXPos?: number; selectedDateIdx?: number; @@ -196,19 +195,10 @@ export default class AdvancedTimeline extends React.PureComponent return `M${half} 0 L${size} ${half} L ${half} ${size} L0 ${half} L${half} 0 L${size} ${half}`; }; - getMouseOverlayPos = (target: SVGElement) => { - if (this.state.mouseOverlayPos) { - return this.state.mouseOverlayPos; - } - const pos = target.getBoundingClientRect(); - this.setState({ mouseOverlayPos: pos }); - return pos; - }; - handleWheel = (event: React.WheelEvent) => { event.preventDefault(); const { maxXRange, xScale } = this.state; - const parentBbox = this.getMouseOverlayPos(event.currentTarget); + const parentBbox = event.currentTarget.getBoundingClientRect(); const mouseXPos = (event.pageX - parentBbox.left) / parentBbox.width; const xRange = xScale.range(); const speed = event.deltaMode @@ -228,7 +218,7 @@ export default class AdvancedTimeline extends React.PureComponent }; handleMouseMove = (event: React.MouseEvent) => { - const parentBbox = this.getMouseOverlayPos(event.currentTarget); + const parentBbox = event.currentTarget.getBoundingClientRect(); this.updateTooltipPos(event.pageX - parentBbox.left); };