UNPKG

matrix-react-sdk

Version:
69 lines (67 loc) 11.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _classnames = _interopRequireDefault(require("classnames")); var _react = _interopRequireDefault(require("react")); const _excluded = ["element", "className", "onScroll", "tabIndex", "wrappedRef", "children"]; /* Copyright 2024 New Vector Ltd. Copyright 2020 The Matrix.org Foundation C.I.C. Copyright 2018 New Vector Ltd SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } class AutoHideScrollbar extends _react.default.Component { constructor(...args) { super(...args); (0, _defineProperty2.default)(this, "containerRef", /*#__PURE__*/_react.default.createRef()); } componentDidMount() { if (this.containerRef.current && this.props.onScroll) { // Using the passive option to not block the main thread // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#improving_scrolling_performance_with_passive_listeners this.containerRef.current.addEventListener("scroll", this.props.onScroll, { passive: true }); } this.props.wrappedRef?.(this.containerRef.current); } componentWillUnmount() { if (this.containerRef.current && this.props.onScroll) { this.containerRef.current.removeEventListener("scroll", this.props.onScroll); } this.props.wrappedRef?.(null); } render() { // eslint-disable-next-line @typescript-eslint/no-unused-vars const _this$props = this.props, { element, className, onScroll, tabIndex, wrappedRef, children } = _this$props, otherProps = (0, _objectWithoutProperties2.default)(_this$props, _excluded); return /*#__PURE__*/_react.default.createElement(element, _objectSpread(_objectSpread({}, otherProps), {}, { ref: this.containerRef, className: (0, _classnames.default)("mx_AutoHideScrollbar", className), // Firefox sometimes makes this element focusable due to // overflow:scroll;, so force it out of tab order by default. tabIndex: tabIndex ?? -1 }), children); } } exports.default = AutoHideScrollbar; (0, _defineProperty2.default)(AutoHideScrollbar, "defaultProps", { element: "div" }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2V4Y2x1ZGVkIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiQXV0b0hpZGVTY3JvbGxiYXIiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJncyIsImNyZWF0ZVJlZiIsImNvbXBvbmVudERpZE1vdW50IiwiY29udGFpbmVyUmVmIiwiY3VycmVudCIsInByb3BzIiwib25TY3JvbGwiLCJhZGRFdmVudExpc3RlbmVyIiwicGFzc2l2ZSIsIndyYXBwZWRSZWYiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsImVsZW1lbnQiLCJjbGFzc05hbWUiLCJ0YWJJbmRleCIsImNoaWxkcmVuIiwib3RoZXJQcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJjcmVhdGVFbGVtZW50IiwicmVmIiwiY2xhc3NOYW1lcyIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zdHJ1Y3R1cmVzL0F1dG9IaWRlU2Nyb2xsYmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTggTmV3IFZlY3RvciBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCBSZWFjdCwgeyBIVE1MQXR0cmlidXRlcywgUmVhY3RIVE1MLCBSZWFjdE5vZGUsIFdoZWVsRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcblxudHlwZSBEeW5hbWljSHRtbEVsZW1lbnRQcm9wczxUIGV4dGVuZHMga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzPiA9XG4gICAgSlNYLkludHJpbnNpY0VsZW1lbnRzW1RdIGV4dGVuZHMgSFRNTEF0dHJpYnV0ZXM8e30+ID8gRHluYW1pY0VsZW1lbnRQcm9wczxUPiA6IER5bmFtaWNFbGVtZW50UHJvcHM8XCJkaXZcIj47XG50eXBlIER5bmFtaWNFbGVtZW50UHJvcHM8VCBleHRlbmRzIGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50cz4gPSBQYXJ0aWFsPE9taXQ8SlNYLkludHJpbnNpY0VsZW1lbnRzW1RdLCBcInJlZlwiPj47XG5cbmV4cG9ydCB0eXBlIElQcm9wczxUIGV4dGVuZHMga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzPiA9IE9taXQ8RHluYW1pY0h0bWxFbGVtZW50UHJvcHM8VD4sIFwib25TY3JvbGxcIj4gJiB7XG4gICAgZWxlbWVudDogVDtcbiAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgb25TY3JvbGw/OiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xuICAgIG9uV2hlZWw/OiAoZXZlbnQ6IFdoZWVsRXZlbnQpID0+IHZvaWQ7XG4gICAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICAgIHRhYkluZGV4PzogbnVtYmVyO1xuICAgIHdyYXBwZWRSZWY/OiAocmVmOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1dG9IaWRlU2Nyb2xsYmFyPFQgZXh0ZW5kcyBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHM+IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElQcm9wczxUPj4ge1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICBlbGVtZW50OiBcImRpdlwiIGFzIGtleW9mIFJlYWN0SFRNTCxcbiAgICB9O1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbnRhaW5lclJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xuXG4gICAgcHVibGljIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXJSZWYuY3VycmVudCAmJiB0aGlzLnByb3BzLm9uU2Nyb2xsKSB7XG4gICAgICAgICAgICAvLyBVc2luZyB0aGUgcGFzc2l2ZSBvcHRpb24gdG8gbm90IGJsb2NrIHRoZSBtYWluIHRocmVhZFxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0V2ZW50VGFyZ2V0L2FkZEV2ZW50TGlzdGVuZXIjaW1wcm92aW5nX3Njcm9sbGluZ19wZXJmb3JtYW5jZV93aXRoX3Bhc3NpdmVfbGlzdGVuZXJzXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lclJlZi5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhpcy5wcm9wcy5vblNjcm9sbCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcm9wcy53cmFwcGVkUmVmPy4odGhpcy5jb250YWluZXJSZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXJSZWYuY3VycmVudCAmJiB0aGlzLnByb3BzLm9uU2Nyb2xsKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lclJlZi5jdXJyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhpcy5wcm9wcy5vblNjcm9sbCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb3BzLndyYXBwZWRSZWY/LihudWxsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgY29uc3QgeyBlbGVtZW50LCBjbGFzc05hbWUsIG9uU2Nyb2xsLCB0YWJJbmRleCwgd3JhcHBlZFJlZiwgY2hpbGRyZW4sIC4uLm90aGVyUHJvcHMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLm90aGVyUHJvcHMsXG4gICAgICAgICAgICAgICAgcmVmOiB0aGlzLmNvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoXCJteF9BdXRvSGlkZVNjcm9sbGJhclwiLCBjbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgIC8vIEZpcmVmb3ggc29tZXRpbWVzIG1ha2VzIHRoaXMgZWxlbWVudCBmb2N1c2FibGUgZHVlIHRvXG4gICAgICAgICAgICAgICAgLy8gb3ZlcmZsb3c6c2Nyb2xsOywgc28gZm9yY2UgaXQgb3V0IG9mIHRhYiBvcmRlciBieSBkZWZhdWx0LlxuICAgICAgICAgICAgICAgIHRhYkluZGV4OiB0YWJJbmRleCA/PyAtMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVNBLElBQUFBLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUFnRixNQUFBRSxTQUFBO0FBVmhGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQSxTQUFBQyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsT0FBQWEsT0FBQSxXQUFBZCxDQUFBLFFBQUFlLGdCQUFBLENBQUFDLE9BQUEsRUFBQWpCLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLENBQUFELENBQUEsU0FBQUUsTUFBQSxDQUFBZSx5QkFBQSxHQUFBZixNQUFBLENBQUFnQixnQkFBQSxDQUFBbkIsQ0FBQSxFQUFBRyxNQUFBLENBQUFlLHlCQUFBLENBQUFoQixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFpQixjQUFBLENBQUFwQixDQUFBLEVBQUFDLENBQUEsRUFBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBTixDQUFBLEVBQUFELENBQUEsaUJBQUFELENBQUE7QUEyQmUsTUFBTXFCLGlCQUFpQixTQUFnREMsY0FBSyxDQUFDQyxTQUFTLENBQVk7RUFBQUMsWUFBQSxHQUFBQyxJQUFBO0lBQUEsU0FBQUEsSUFBQTtJQUFBLElBQUFULGdCQUFBLENBQUFDLE9BQUEscUNBSzdDSyxjQUFLLENBQUNJLFNBQVMsQ0FBQyxDQUFDO0VBQUE7RUFFMUVDLGlCQUFpQkEsQ0FBQSxFQUFTO0lBQzdCLElBQUksSUFBSSxDQUFDQyxZQUFZLENBQUNDLE9BQU8sSUFBSSxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsUUFBUSxFQUFFO01BQ2xEO01BQ0E7TUFDQSxJQUFJLENBQUNILFlBQVksQ0FBQ0MsT0FBTyxDQUFDRyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDRixLQUFLLENBQUNDLFFBQVEsRUFBRTtRQUFFRSxPQUFPLEVBQUU7TUFBSyxDQUFDLENBQUM7SUFDaEc7SUFFQSxJQUFJLENBQUNILEtBQUssQ0FBQ0ksVUFBVSxHQUFHLElBQUksQ0FBQ04sWUFBWSxDQUFDQyxPQUFPLENBQUM7RUFDdEQ7RUFFT00sb0JBQW9CQSxDQUFBLEVBQVM7SUFDaEMsSUFBSSxJQUFJLENBQUNQLFlBQVksQ0FBQ0MsT0FBTyxJQUFJLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxRQUFRLEVBQUU7TUFDbEQsSUFBSSxDQUFDSCxZQUFZLENBQUNDLE9BQU8sQ0FBQ08sbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQ04sS0FBSyxDQUFDQyxRQUFRLENBQUM7SUFDaEY7SUFFQSxJQUFJLENBQUNELEtBQUssQ0FBQ0ksVUFBVSxHQUFHLElBQUksQ0FBQztFQUNqQztFQUVPRyxNQUFNQSxDQUFBLEVBQW9CO0lBQzdCO0lBQ0EsTUFBQUMsV0FBQSxHQUF3RixJQUFJLENBQUNSLEtBQUs7TUFBNUY7UUFBRVMsT0FBTztRQUFFQyxTQUFTO1FBQUVULFFBQVE7UUFBRVUsUUFBUTtRQUFFUCxVQUFVO1FBQUVRO01BQXdCLENBQUMsR0FBQUosV0FBQTtNQUFaSyxVQUFVLE9BQUFDLHlCQUFBLENBQUEzQixPQUFBLEVBQUFxQixXQUFBLEVBQUF4QyxTQUFBO0lBRW5GLG9CQUFPd0IsY0FBSyxDQUFDdUIsYUFBYSxDQUN0Qk4sT0FBTyxFQUFBM0IsYUFBQSxDQUFBQSxhQUFBLEtBRUErQixVQUFVO01BQ2JHLEdBQUcsRUFBRSxJQUFJLENBQUNsQixZQUFZO01BQ3RCWSxTQUFTLEVBQUUsSUFBQU8sbUJBQVUsRUFBQyxzQkFBc0IsRUFBRVAsU0FBUyxDQUFDO01BQ3hEO01BQ0E7TUFDQUMsUUFBUSxFQUFFQSxRQUFRLElBQUksQ0FBQztJQUFDLElBRTVCQyxRQUNKLENBQUM7RUFDTDtBQUNKO0FBQUNNLE9BQUEsQ0FBQS9CLE9BQUEsR0FBQUksaUJBQUE7QUFBQSxJQUFBTCxnQkFBQSxDQUFBQyxPQUFBLEVBMUNvQkksaUJBQWlCLGtCQUNMO0VBQ3pCa0IsT0FBTyxFQUFFO0FBQ2IsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==