import React = require("react"); import { TextEditorToken } from "@tandem/editor/browser"; export interface IDraggableComponentProps { onStartDrag(event: React.MouseEvent); onStopDrag(event: MouseEvent); onDrag(event: MouseEvent); style?: any; className?: string; tabIndex?: any; } export class DraggableComponent extends React.Component { startDrag = (event: React.MouseEvent) => { this.props.onStartDrag(event); document.addEventListener("mouseup", this.stopDrag); document.addEventListener("mousemove", this.onMouseMove); } onMouseMove = (event: MouseEvent) => { this.props.onDrag(event); } stopDrag = (event: MouseEvent) => { this.props.onStopDrag(event); document.removeEventListener("mouseup", this.stopDrag); document.removeEventListener("mousemove", this.onMouseMove); } render() { return { this.props.children } } }