UNPKG

@intuitionrobotics/thunderstorm

Version:
35 lines 1.24 kB
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