matrix-react-sdk
Version:
SDK for matrix.org using React
59 lines (56 loc) • 7.09 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
class Draggable extends _react.default.Component {
constructor(props) {
super(props);
(0, _defineProperty2.default)(this, "onMouseDown", event => {
this.setState({
location: {
currentX: event.clientX,
currentY: event.clientY
}
});
document.addEventListener("mousemove", this.state.onMouseMove);
document.addEventListener("mouseup", this.state.onMouseUp);
});
(0, _defineProperty2.default)(this, "onMouseUp", event => {
document.removeEventListener("mousemove", this.state.onMouseMove);
document.removeEventListener("mouseup", this.state.onMouseUp);
this.props.onMouseUp(event);
});
this.state = {
onMouseMove: this.onMouseMove.bind(this),
onMouseUp: this.onMouseUp.bind(this),
location: {
currentX: 0,
currentY: 0
}
};
}
onMouseMove(event) {
const newLocation = this.props.dragFunc(this.state.location, event);
this.setState({
location: newLocation
});
}
render() {
return /*#__PURE__*/_react.default.createElement("div", {
className: this.props.className,
onMouseDown: this.onMouseDown
});
}
}
exports.default = Draggable;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIkRyYWdnYWJsZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwiZXZlbnQiLCJzZXRTdGF0ZSIsImxvY2F0aW9uIiwiY3VycmVudFgiLCJjbGllbnRYIiwiY3VycmVudFkiLCJjbGllbnRZIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwic3RhdGUiLCJvbk1vdXNlTW92ZSIsIm9uTW91c2VVcCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJiaW5kIiwibmV3TG9jYXRpb24iLCJkcmFnRnVuYyIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbk1vdXNlRG93biIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9EcmFnZ2FibGUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW50ZXJmYWNlIElQcm9wcyB7XG4gICAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgZHJhZ0Z1bmM6IChjdXJyZW50TG9jYXRpb246IElMb2NhdGlvblN0YXRlLCBldmVudDogTW91c2VFdmVudCkgPT4gSUxvY2F0aW9uU3RhdGU7XG4gICAgb25Nb3VzZVVwOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG59XG5cbmludGVyZmFjZSBJU3RhdGUge1xuICAgIG9uTW91c2VNb3ZlOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgb25Nb3VzZVVwOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgbG9jYXRpb246IElMb2NhdGlvblN0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElMb2NhdGlvblN0YXRlIHtcbiAgICBjdXJyZW50WDogbnVtYmVyO1xuICAgIGN1cnJlbnRZOiBudW1iZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyYWdnYWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHMsIElTdGF0ZT4ge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogSVByb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgb25Nb3VzZU1vdmU6IHRoaXMub25Nb3VzZU1vdmUuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIG9uTW91c2VVcDogdGhpcy5vbk1vdXNlVXAuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB7XG4gICAgICAgICAgICAgICAgY3VycmVudFg6IDAsXG4gICAgICAgICAgICAgICAgY3VycmVudFk6IDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Nb3VzZURvd24gPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBsb2NhdGlvbjoge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRYOiBldmVudC5jbGllbnRYLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRZOiBldmVudC5jbGllbnRZLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCB0aGlzLnN0YXRlLm9uTW91c2VNb3ZlKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgdGhpcy5zdGF0ZS5vbk1vdXNlVXApO1xuICAgIH07XG5cbiAgICBwcml2YXRlIG9uTW91c2VVcCA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIHRoaXMuc3RhdGUub25Nb3VzZU1vdmUpO1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCB0aGlzLnN0YXRlLm9uTW91c2VVcCk7XG4gICAgICAgIHRoaXMucHJvcHMub25Nb3VzZVVwKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXdMb2NhdGlvbiA9IHRoaXMucHJvcHMuZHJhZ0Z1bmModGhpcy5zdGF0ZS5sb2NhdGlvbiwgZXZlbnQpO1xuXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgbG9jYXRpb246IG5ld0xvY2F0aW9uLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17dGhpcy5wcm9wcy5jbGFzc05hbWV9IG9uTW91c2VEb3duPXt0aGlzLm9uTW91c2VEb3dufSAvPjtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBUUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBcUJlLE1BQU1DLFNBQVMsU0FBU0MsY0FBSyxDQUFDQyxTQUFTLENBQWlCO0VBQzVEQyxXQUFXQSxDQUFDQyxLQUFhLEVBQUU7SUFDOUIsS0FBSyxDQUFDQSxLQUFLLENBQUM7SUFBQyxJQUFBQyxnQkFBQSxDQUFBQyxPQUFBLHVCQVlNQyxLQUF1QixJQUFXO01BQ3JELElBQUksQ0FBQ0MsUUFBUSxDQUFDO1FBQ1ZDLFFBQVEsRUFBRTtVQUNOQyxRQUFRLEVBQUVILEtBQUssQ0FBQ0ksT0FBTztVQUN2QkMsUUFBUSxFQUFFTCxLQUFLLENBQUNNO1FBQ3BCO01BQ0osQ0FBQyxDQUFDO01BRUZDLFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxXQUFXLENBQUM7TUFDOURILFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQ0MsS0FBSyxDQUFDRSxTQUFTLENBQUM7SUFDOUQsQ0FBQztJQUFBLElBQUFiLGdCQUFBLENBQUFDLE9BQUEscUJBRW9CQyxLQUFpQixJQUFXO01BQzdDTyxRQUFRLENBQUNLLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUNILEtBQUssQ0FBQ0MsV0FBVyxDQUFDO01BQ2pFSCxRQUFRLENBQUNLLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUNILEtBQUssQ0FBQ0UsU0FBUyxDQUFDO01BQzdELElBQUksQ0FBQ2QsS0FBSyxDQUFDYyxTQUFTLENBQUNYLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBMUJHLElBQUksQ0FBQ1MsS0FBSyxHQUFHO01BQ1RDLFdBQVcsRUFBRSxJQUFJLENBQUNBLFdBQVcsQ0FBQ0csSUFBSSxDQUFDLElBQUksQ0FBQztNQUN4Q0YsU0FBUyxFQUFFLElBQUksQ0FBQ0EsU0FBUyxDQUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDO01BQ3BDWCxRQUFRLEVBQUU7UUFDTkMsUUFBUSxFQUFFLENBQUM7UUFDWEUsUUFBUSxFQUFFO01BQ2Q7SUFDSixDQUFDO0VBQ0w7RUFvQlFLLFdBQVdBLENBQUNWLEtBQWlCLEVBQVE7SUFDekMsTUFBTWMsV0FBVyxHQUFHLElBQUksQ0FBQ2pCLEtBQUssQ0FBQ2tCLFFBQVEsQ0FBQyxJQUFJLENBQUNOLEtBQUssQ0FBQ1AsUUFBUSxFQUFFRixLQUFLLENBQUM7SUFFbkUsSUFBSSxDQUFDQyxRQUFRLENBQUM7TUFDVkMsUUFBUSxFQUFFWTtJQUNkLENBQUMsQ0FBQztFQUNOO0VBRU9FLE1BQU1BLENBQUEsRUFBb0I7SUFDN0Isb0JBQU8xQixNQUFBLENBQUFTLE9BQUEsQ0FBQWtCLGFBQUE7TUFBS0MsU0FBUyxFQUFFLElBQUksQ0FBQ3JCLEtBQUssQ0FBQ3FCLFNBQVU7TUFBQ0MsV0FBVyxFQUFFLElBQUksQ0FBQ0E7SUFBWSxDQUFFLENBQUM7RUFDbEY7QUFDSjtBQUFDQyxPQUFBLENBQUFyQixPQUFBLEdBQUFOLFNBQUEiLCJpZ25vcmVMaXN0IjpbXX0=