mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
VizTooltip: Fix positioning at bottom and right edges on mobile (#92042)
This commit is contained in:
parent
d35e9264bb
commit
74ebc66520
@ -313,8 +313,10 @@ export const TooltipPlugin2 = ({
|
||||
}
|
||||
// only pinnable tooltip is visible *and* is within proximity to series/point
|
||||
else if (_isHovering && closestSeriesIdx != null && !_isPinned) {
|
||||
_isPinned = true;
|
||||
scheduleRender(true);
|
||||
setTimeout(() => {
|
||||
_isPinned = true;
|
||||
scheduleRender(true);
|
||||
}, 0);
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -608,14 +610,29 @@ export const TooltipPlugin2 = ({
|
||||
size.width = width;
|
||||
size.height = height;
|
||||
|
||||
const event = plot!.cursor.event;
|
||||
let event = plot!.cursor.event;
|
||||
|
||||
// if not viaSync, re-dispatch real event
|
||||
if (event != null) {
|
||||
// we expect to re-dispatch mousemove, but on mobile we'll get mouseup or click
|
||||
const isMobile = event.type !== 'mousemove';
|
||||
|
||||
if (isMobile) {
|
||||
event = new MouseEvent('mousemove', {
|
||||
view: window,
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
clientX: event.clientX,
|
||||
clientY: event.clientY,
|
||||
screenX: event.screenX,
|
||||
screenY: event.screenY,
|
||||
});
|
||||
}
|
||||
|
||||
// this works around the fact that uPlot does not unset cursor.event (for perf reasons)
|
||||
// so if the last real mouse event was mouseleave and you manually trigger u.setCursor()
|
||||
// it would end up re-dispatching mouseleave
|
||||
const isStaleEvent = performance.now() - event.timeStamp > 16;
|
||||
const isStaleEvent = isMobile ? false : performance.now() - event.timeStamp > 16;
|
||||
|
||||
!isStaleEvent && plot!.over.dispatchEvent(event);
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user