@intuitionrobotics/thunderstorm
Version:
35 lines • 1.24 kB
JavaScript
import * as React from "react";
import { BaseComponent } from "../../core/BaseComponent.js";
import { OverlayWithDocumentListener } from "./OverlayWithDocumentListener.js";
export class ClickToDrag extends BaseComponent {
constructor(props) {
super(props);
this.state = {
isDragging: false
};
}
handleMouseDown = () => {
this.setState({ isDragging: true });
};
onMouseMove = (e) => {
if (!this.state.isDragging)
return;
if (this.props.onMouseMove)
this.props.onMouseMove(e);
};
onMouseUp = (e) => {
this.setState({ isDragging: false });
if (this.props.onMouseUp)
this.props.onMouseUp(e);
};
render = () => {
return (React.createElement("div", { style: { display: "contents" }, onMouseDown: this.handleMouseDown },
this.props.children,
this.renderOverlay()));
};
renderOverlay = () => {
return this.state.isDragging &&
React.createElement(OverlayWithDocumentListener, { documentOnMouseMove: this.onMouseMove, documentOnMouseUp: this.onMouseUp, zIndex: this.props.overlayZIndex });
};
}
//# sourceMappingURL=ClickToDrag.js.map