fix: Don't open panel menu when dragging (react-)panel in dashboard #14946

This commit is contained in:
Johannes Schill 2019-01-30 15:38:59 +01:00
parent ef4611eb56
commit 1afc590c70

View File

@ -1,5 +1,6 @@
import React, { Component } from 'react';
import classNames from 'classnames';
import { isEqual } from 'lodash';
import PanelHeaderCorner from './PanelHeaderCorner';
import { PanelHeaderMenu } from './PanelHeaderMenu';
@ -19,21 +20,45 @@ export interface Props {
links?: [];
}
interface ClickCoordinates {
x: number;
y: number;
}
interface State {
panelMenuOpen: boolean;
}
export class PanelHeader extends Component<Props, State> {
clickCoordinates: ClickCoordinates = {x: 0, y: 0};
state = {
panelMenuOpen: false,
clickCoordinates: {x: 0, y: 0}
};
onMenuToggle = event => {
event.stopPropagation();
eventToClickCoordinates = (event: React.MouseEvent<HTMLDivElement>) => {
return {
x: event.clientX,
y: event.clientY
};
}
this.setState(prevState => ({
panelMenuOpen: !prevState.panelMenuOpen,
}));
onMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {
this.clickCoordinates = this.eventToClickCoordinates(event);
};
isClick = (clickCoordinates: ClickCoordinates) => {
return isEqual(clickCoordinates, this.clickCoordinates);
}
onMenuToggle = (event: React.MouseEvent<HTMLDivElement>) => {
if (this.isClick(this.eventToClickCoordinates(event))) {
event.stopPropagation();
this.setState(prevState => ({
panelMenuOpen: !prevState.panelMenuOpen,
}));
}
};
closeMenu = () => {
@ -64,7 +89,7 @@ export class PanelHeader extends Component<Props, State> {
<i className="fa fa-spinner fa-spin" />
</span>
)}
<div className="panel-title-container" onClick={this.onMenuToggle}>
<div className="panel-title-container" onClick={this.onMenuToggle} onMouseDown={this.onMouseDown}>
<div className="panel-title">
<span className="icon-gf panel-alert-icon" />
<span className="panel-title-text">