matrix-react-sdk
Version:
SDK for matrix.org using React
75 lines (68 loc) • 6.96 kB
JavaScript
;
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 _events = require("events");
var _lodash = require("lodash");
/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2021 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.
*/
/**
* Fires when the middle panel has been resized (throttled).
* @event module:utils~ResizeNotifier#"middlePanelResized"
*/
/**
* Fires when the middle panel has been resized by a pixel.
* @event module:utils~ResizeNotifier#"middlePanelResizedNoisy"
*/
class ResizeNotifier extends _events.EventEmitter {
constructor(...args) {
super(...args);
(0, _defineProperty2.default)(this, "_isResizing", false);
// with default options, will call fn once at first call, and then every x ms
// if there was another call in that timespan
(0, _defineProperty2.default)(this, "throttledMiddlePanel", (0, _lodash.throttle)(() => this.emit("middlePanelResized"), 200));
}
get isResizing() {
return this._isResizing;
}
startResizing() {
this._isResizing = true;
this.emit("isResizing", true);
}
stopResizing() {
this._isResizing = false;
this.emit("isResizing", false);
}
noisyMiddlePanel() {
this.emit("middlePanelResizedNoisy");
}
updateMiddlePanel() {
this.throttledMiddlePanel();
this.noisyMiddlePanel();
}
// can be called in quick succession
notifyLeftHandleResized() {
// don't emit event for own region
this.updateMiddlePanel();
}
// can be called in quick succession
notifyRightHandleResized() {
this.updateMiddlePanel();
}
notifyTimelineHeightChanged() {
this.updateMiddlePanel();
}
// can be called in quick succession
notifyWindowResized() {
this.updateMiddlePanel();
}
}
exports.default = ResizeNotifier;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXZlbnRzIiwicmVxdWlyZSIsIl9sb2Rhc2giLCJSZXNpemVOb3RpZmllciIsIkV2ZW50RW1pdHRlciIsImNvbnN0cnVjdG9yIiwiYXJncyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwidGhyb3R0bGUiLCJlbWl0IiwiaXNSZXNpemluZyIsIl9pc1Jlc2l6aW5nIiwic3RhcnRSZXNpemluZyIsInN0b3BSZXNpemluZyIsIm5vaXN5TWlkZGxlUGFuZWwiLCJ1cGRhdGVNaWRkbGVQYW5lbCIsInRocm90dGxlZE1pZGRsZVBhbmVsIiwibm90aWZ5TGVmdEhhbmRsZVJlc2l6ZWQiLCJub3RpZnlSaWdodEhhbmRsZVJlc2l6ZWQiLCJub3RpZnlUaW1lbGluZUhlaWdodENoYW5nZWQiLCJub3RpZnlXaW5kb3dSZXNpemVkIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9SZXNpemVOb3RpZmllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qKlxuICogRmlyZXMgd2hlbiB0aGUgbWlkZGxlIHBhbmVsIGhhcyBiZWVuIHJlc2l6ZWQgKHRocm90dGxlZCkuXG4gKiBAZXZlbnQgbW9kdWxlOnV0aWxzflJlc2l6ZU5vdGlmaWVyI1wibWlkZGxlUGFuZWxSZXNpemVkXCJcbiAqL1xuLyoqXG4gKiBGaXJlcyB3aGVuIHRoZSBtaWRkbGUgcGFuZWwgaGFzIGJlZW4gcmVzaXplZCBieSBhIHBpeGVsLlxuICogQGV2ZW50IG1vZHVsZTp1dGlsc35SZXNpemVOb3RpZmllciNcIm1pZGRsZVBhbmVsUmVzaXplZE5vaXN5XCJcbiAqL1xuXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiZXZlbnRzXCI7XG5pbXBvcnQgeyB0aHJvdHRsZSB9IGZyb20gXCJsb2Rhc2hcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzaXplTm90aWZpZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICAgIHByaXZhdGUgX2lzUmVzaXppbmcgPSBmYWxzZTtcblxuICAgIC8vIHdpdGggZGVmYXVsdCBvcHRpb25zLCB3aWxsIGNhbGwgZm4gb25jZSBhdCBmaXJzdCBjYWxsLCBhbmQgdGhlbiBldmVyeSB4IG1zXG4gICAgLy8gaWYgdGhlcmUgd2FzIGFub3RoZXIgY2FsbCBpbiB0aGF0IHRpbWVzcGFuXG4gICAgcHJpdmF0ZSB0aHJvdHRsZWRNaWRkbGVQYW5lbCA9IHRocm90dGxlKCgpID0+IHRoaXMuZW1pdChcIm1pZGRsZVBhbmVsUmVzaXplZFwiKSwgMjAwKTtcblxuICAgIHB1YmxpYyBnZXQgaXNSZXNpemluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmVzaXppbmc7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0UmVzaXppbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzUmVzaXppbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmVtaXQoXCJpc1Jlc2l6aW5nXCIsIHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdG9wUmVzaXppbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzUmVzaXppbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lbWl0KFwiaXNSZXNpemluZ1wiLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBub2lzeU1pZGRsZVBhbmVsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVtaXQoXCJtaWRkbGVQYW5lbFJlc2l6ZWROb2lzeVwiKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZU1pZGRsZVBhbmVsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRocm90dGxlZE1pZGRsZVBhbmVsKCk7XG4gICAgICAgIHRoaXMubm9pc3lNaWRkbGVQYW5lbCgpO1xuICAgIH1cblxuICAgIC8vIGNhbiBiZSBjYWxsZWQgaW4gcXVpY2sgc3VjY2Vzc2lvblxuICAgIHB1YmxpYyBub3RpZnlMZWZ0SGFuZGxlUmVzaXplZCgpOiB2b2lkIHtcbiAgICAgICAgLy8gZG9uJ3QgZW1pdCBldmVudCBmb3Igb3duIHJlZ2lvblxuICAgICAgICB0aGlzLnVwZGF0ZU1pZGRsZVBhbmVsKCk7XG4gICAgfVxuXG4gICAgLy8gY2FuIGJlIGNhbGxlZCBpbiBxdWljayBzdWNjZXNzaW9uXG4gICAgcHVibGljIG5vdGlmeVJpZ2h0SGFuZGxlUmVzaXplZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVNaWRkbGVQYW5lbCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBub3RpZnlUaW1lbGluZUhlaWdodENoYW5nZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlTWlkZGxlUGFuZWwoKTtcbiAgICB9XG5cbiAgICAvLyBjYW4gYmUgY2FsbGVkIGluIHF1aWNrIHN1Y2Nlc3Npb25cbiAgICBwdWJsaWMgbm90aWZ5V2luZG93UmVzaXplZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVNaWRkbGVQYW5lbCgpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFpQkEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBS2UsTUFBTUUsY0FBYyxTQUFTQyxvQkFBWSxDQUFDO0VBQUFDLFlBQUEsR0FBQUMsSUFBQTtJQUFBLFNBQUFBLElBQUE7SUFBQSxJQUFBQyxnQkFBQSxDQUFBQyxPQUFBLHVCQUMvQixLQUFLO0lBRTNCO0lBQ0E7SUFBQSxJQUFBRCxnQkFBQSxDQUFBQyxPQUFBLGdDQUMrQixJQUFBQyxnQkFBUSxFQUFDLE1BQU0sSUFBSSxDQUFDQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxHQUFHLENBQUM7RUFBQTtFQUVuRixJQUFXQyxVQUFVQSxDQUFBLEVBQVk7SUFDN0IsT0FBTyxJQUFJLENBQUNDLFdBQVc7RUFDM0I7RUFFT0MsYUFBYUEsQ0FBQSxFQUFTO0lBQ3pCLElBQUksQ0FBQ0QsV0FBVyxHQUFHLElBQUk7SUFDdkIsSUFBSSxDQUFDRixJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQztFQUNqQztFQUVPSSxZQUFZQSxDQUFBLEVBQVM7SUFDeEIsSUFBSSxDQUFDRixXQUFXLEdBQUcsS0FBSztJQUN4QixJQUFJLENBQUNGLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDO0VBQ2xDO0VBRVFLLGdCQUFnQkEsQ0FBQSxFQUFTO0lBQzdCLElBQUksQ0FBQ0wsSUFBSSxDQUFDLHlCQUF5QixDQUFDO0VBQ3hDO0VBRVFNLGlCQUFpQkEsQ0FBQSxFQUFTO0lBQzlCLElBQUksQ0FBQ0Msb0JBQW9CLENBQUMsQ0FBQztJQUMzQixJQUFJLENBQUNGLGdCQUFnQixDQUFDLENBQUM7RUFDM0I7O0VBRUE7RUFDT0csdUJBQXVCQSxDQUFBLEVBQVM7SUFDbkM7SUFDQSxJQUFJLENBQUNGLGlCQUFpQixDQUFDLENBQUM7RUFDNUI7O0VBRUE7RUFDT0csd0JBQXdCQSxDQUFBLEVBQVM7SUFDcEMsSUFBSSxDQUFDSCxpQkFBaUIsQ0FBQyxDQUFDO0VBQzVCO0VBRU9JLDJCQUEyQkEsQ0FBQSxFQUFTO0lBQ3ZDLElBQUksQ0FBQ0osaUJBQWlCLENBQUMsQ0FBQztFQUM1Qjs7RUFFQTtFQUNPSyxtQkFBbUJBLENBQUEsRUFBUztJQUMvQixJQUFJLENBQUNMLGlCQUFpQixDQUFDLENBQUM7RUFDNUI7QUFDSjtBQUFDTSxPQUFBLENBQUFkLE9BQUEsR0FBQUwsY0FBQSIsImlnbm9yZUxpc3QiOltdfQ==