UNPKG

matrix-react-sdk

Version:
130 lines (107 loc) 13.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _call = require("matrix-js-sdk/src/webrtc/call"); var _react = _interopRequireDefault(require("react")); var _CallHandler = _interopRequireWildcard(require("../../../CallHandler")); var _CallView = _interopRequireDefault(require("./CallView")); var _dispatcher = _interopRequireDefault(require("../../../dispatcher/dispatcher")); var _reResizable = require("re-resizable"); var _replaceableComponent = require("../../../utils/replaceableComponent"); var _dec, _class, _temp; let CallViewForRoom = ( /* * Wrapper for CallView that always display the call in a given room, * or nothing if there is no call in that room. */ _dec = (0, _replaceableComponent.replaceableComponent)("views.voip.CallViewForRoom"), _dec(_class = (_temp = class CallViewForRoom extends _react.default.Component /*:: <IProps, IState>*/ { constructor(props /*: IProps*/ ) { super(props); (0, _defineProperty2.default)(this, "dispatcherRef", void 0); (0, _defineProperty2.default)(this, "onAction", payload => { switch (payload.action) { case 'call_state': { this.updateCall(); break; } } }); (0, _defineProperty2.default)(this, "updateCall", () => { const newCall = this.getCall(); if (newCall !== this.state.call) { this.setState({ call: newCall }); } }); (0, _defineProperty2.default)(this, "onResizeStart", () => { this.props.resizeNotifier.startResizing(); }); (0, _defineProperty2.default)(this, "onResize", () => { this.props.resizeNotifier.notifyTimelineHeightChanged(); }); (0, _defineProperty2.default)(this, "onResizeStop", () => { this.props.resizeNotifier.stopResizing(); }); this.state = { call: this.getCall() }; } componentDidMount() { this.dispatcherRef = _dispatcher.default.register(this.onAction); _CallHandler.default.sharedInstance().addListener(_CallHandler.CallHandlerEvent.CallChangeRoom, this.updateCall); } componentWillUnmount() { _dispatcher.default.unregister(this.dispatcherRef); _CallHandler.default.sharedInstance().removeListener(_CallHandler.CallHandlerEvent.CallChangeRoom, this.updateCall); } getCall() /*: MatrixCall*/ { const call = _CallHandler.default.sharedInstance().getCallForRoom(this.props.roomId); if (call && [_call.CallState.Ended, _call.CallState.Ringing].includes(call.state)) return null; return call; } render() { if (!this.state.call) return null; // We subtract 8 as it the margin-bottom of the mx_CallViewForRoom_ResizeWrapper const maxHeight = this.props.maxVideoHeight - 8; return /*#__PURE__*/_react.default.createElement("div", { className: "mx_CallViewForRoom" }, /*#__PURE__*/_react.default.createElement(_reResizable.Resizable, { minHeight: 380, maxHeight: maxHeight, enable: { top: false, right: false, bottom: true, left: false, topRight: false, bottomRight: false, bottomLeft: false, topLeft: false }, onResizeStart: this.onResizeStart, onResize: this.onResize, onResizeStop: this.onResizeStop, className: "mx_CallViewForRoom_ResizeWrapper", handleClasses: { bottom: "mx_CallViewForRoom_ResizeHandle" } }, /*#__PURE__*/_react.default.createElement(_CallView.default, { call: this.state.call, pipMode: false }))); } }, _temp)) || _class); exports.default = CallViewForRoom; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL3ZvaXAvQ2FsbFZpZXdGb3JSb29tLnRzeCJdLCJuYW1lcyI6WyJDYWxsVmlld0ZvclJvb20iLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJwYXlsb2FkIiwiYWN0aW9uIiwidXBkYXRlQ2FsbCIsIm5ld0NhbGwiLCJnZXRDYWxsIiwic3RhdGUiLCJjYWxsIiwic2V0U3RhdGUiLCJyZXNpemVOb3RpZmllciIsInN0YXJ0UmVzaXppbmciLCJub3RpZnlUaW1lbGluZUhlaWdodENoYW5nZWQiLCJzdG9wUmVzaXppbmciLCJjb21wb25lbnREaWRNb3VudCIsImRpc3BhdGNoZXJSZWYiLCJkaXMiLCJyZWdpc3RlciIsIm9uQWN0aW9uIiwiQ2FsbEhhbmRsZXIiLCJzaGFyZWRJbnN0YW5jZSIsImFkZExpc3RlbmVyIiwiQ2FsbEhhbmRsZXJFdmVudCIsIkNhbGxDaGFuZ2VSb29tIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJ1bnJlZ2lzdGVyIiwicmVtb3ZlTGlzdGVuZXIiLCJnZXRDYWxsRm9yUm9vbSIsInJvb21JZCIsIkNhbGxTdGF0ZSIsIkVuZGVkIiwiUmluZ2luZyIsImluY2x1ZGVzIiwicmVuZGVyIiwibWF4SGVpZ2h0IiwibWF4VmlkZW9IZWlnaHQiLCJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImxlZnQiLCJ0b3BSaWdodCIsImJvdHRvbVJpZ2h0IiwiYm90dG9tTGVmdCIsInRvcExlZnQiLCJvblJlc2l6ZVN0YXJ0Iiwib25SZXNpemUiLCJvblJlc2l6ZVN0b3AiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFnQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7SUFxQnFCQSxlO0FBTHJCO0FBQ0E7QUFDQTtBQUNBO09BQ0MsZ0RBQXFCLDRCQUFyQixDLHlCQUFELE1BQ3FCQSxlQURyQixTQUM2Q0MsZUFBTUM7QUFEbkQ7QUFDNkU7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QUFTLEVBQUMsa0NBaEJkO0FBaUJJLE1BQUEsYUFBYSxFQUFFO0FBQUNSLFFBQUFBLE1BQU0sRUFBRTtBQUFUO0FBakJuQixvQkFtQkksNkJBQUMsaUJBQUQ7QUFDSSxNQUFBLElBQUksRUFBRSxLQUFLL0IsS0FBTCxDQUFXQyxJQURyQjtBQUVJLE1BQUEsT0FBTyxFQUFFO0FBRmIsTUFuQkosQ0FESixDQURKO0FBNEJIOztBQXhGd0UsQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xueW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG5TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG5saW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7IENhbGxTdGF0ZSwgTWF0cml4Q2FsbCB9IGZyb20gJ21hdHJpeC1qcy1zZGsvc3JjL3dlYnJ0Yy9jYWxsJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ2FsbEhhbmRsZXIsIHsgQ2FsbEhhbmRsZXJFdmVudCB9IGZyb20gJy4uLy4uLy4uL0NhbGxIYW5kbGVyJztcbmltcG9ydCBDYWxsVmlldyBmcm9tICcuL0NhbGxWaWV3JztcbmltcG9ydCBkaXMgZnJvbSAnLi4vLi4vLi4vZGlzcGF0Y2hlci9kaXNwYXRjaGVyJztcbmltcG9ydCB7UmVzaXphYmxlfSBmcm9tIFwicmUtcmVzaXphYmxlXCI7XG5pbXBvcnQgUmVzaXplTm90aWZpZXIgZnJvbSBcIi4uLy4uLy4uL3V0aWxzL1Jlc2l6ZU5vdGlmaWVyXCI7XG5pbXBvcnQge3JlcGxhY2VhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvcmVwbGFjZWFibGVDb21wb25lbnRcIjtcblxuaW50ZXJmYWNlIElQcm9wcyB7XG4gICAgLy8gV2hhdCByb29tIHdlIHNob3VsZCBkaXNwbGF5IHRoZSBjYWxsIGZvclxuICAgIHJvb21JZDogc3RyaW5nLFxuXG4gICAgLy8gbWF4SGVpZ2h0IHN0eWxlIGF0dHJpYnV0ZSBmb3IgdGhlIHZpZGVvIHBhbmVsXG4gICAgbWF4VmlkZW9IZWlnaHQ/OiBudW1iZXI7XG5cbiAgICByZXNpemVOb3RpZmllcjogUmVzaXplTm90aWZpZXIsXG59XG5cbmludGVyZmFjZSBJU3RhdGUge1xuICAgIGNhbGw6IE1hdHJpeENhbGwsXG59XG5cbi8qXG4gKiBXcmFwcGVyIGZvciBDYWxsVmlldyB0aGF0IGFsd2F5cyBkaXNwbGF5IHRoZSBjYWxsIGluIGEgZ2l2ZW4gcm9vbSxcbiAqIG9yIG5vdGhpbmcgaWYgdGhlcmUgaXMgbm8gY2FsbCBpbiB0aGF0IHJvb20uXG4gKi9cbkByZXBsYWNlYWJsZUNvbXBvbmVudChcInZpZXdzLnZvaXAuQ2FsbFZpZXdGb3JSb29tXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDYWxsVmlld0ZvclJvb20gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SVByb3BzLCBJU3RhdGU+IHtcbiAgICBwcml2YXRlIGRpc3BhdGNoZXJSZWY6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzOiBJUHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgY2FsbDogdGhpcy5nZXRDYWxsKCksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXJSZWYgPSBkaXMucmVnaXN0ZXIodGhpcy5vbkFjdGlvbik7XG4gICAgICAgIENhbGxIYW5kbGVyLnNoYXJlZEluc3RhbmNlKCkuYWRkTGlzdGVuZXIoQ2FsbEhhbmRsZXJFdmVudC5DYWxsQ2hhbmdlUm9vbSwgdGhpcy51cGRhdGVDYWxsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIGRpcy51bnJlZ2lzdGVyKHRoaXMuZGlzcGF0Y2hlclJlZik7XG4gICAgICAgIENhbGxIYW5kbGVyLnNoYXJlZEluc3RhbmNlKCkucmVtb3ZlTGlzdGVuZXIoQ2FsbEhhbmRsZXJFdmVudC5DYWxsQ2hhbmdlUm9vbSwgdGhpcy51cGRhdGVDYWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQWN0aW9uID0gKHBheWxvYWQpID0+IHtcbiAgICAgICAgc3dpdGNoIChwYXlsb2FkLmFjdGlvbikge1xuICAgICAgICAgICAgY2FzZSAnY2FsbF9zdGF0ZSc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGwoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNhbGwgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0NhbGwgPSB0aGlzLmdldENhbGwoKTtcbiAgICAgICAgaWYgKG5ld0NhbGwgIT09IHRoaXMuc3RhdGUuY2FsbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y2FsbDogbmV3Q2FsbH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0Q2FsbCgpOiBNYXRyaXhDYWxsIHtcbiAgICAgICAgY29uc3QgY2FsbCA9IENhbGxIYW5kbGVyLnNoYXJlZEluc3RhbmNlKCkuZ2V0Q2FsbEZvclJvb20odGhpcy5wcm9wcy5yb29tSWQpO1xuXG4gICAgICAgIGlmIChjYWxsICYmIFtDYWxsU3RhdGUuRW5kZWQsIENhbGxTdGF0ZS5SaW5naW5nXS5pbmNsdWRlcyhjYWxsLnN0YXRlKSkgcmV0dXJuIG51bGw7XG4gICAgICAgIHJldHVybiBjYWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25SZXNpemVTdGFydCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wcy5yZXNpemVOb3RpZmllci5zdGFydFJlc2l6aW5nKCk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgb25SZXNpemUgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMucHJvcHMucmVzaXplTm90aWZpZXIubm90aWZ5VGltZWxpbmVIZWlnaHRDaGFuZ2VkKCk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgb25SZXNpemVTdG9wID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnByb3BzLnJlc2l6ZU5vdGlmaWVyLnN0b3BSZXNpemluZygpO1xuICAgIH07XG5cbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuc3RhdGUuY2FsbCkgcmV0dXJuIG51bGw7XG4gICAgICAgIC8vIFdlIHN1YnRyYWN0IDggYXMgaXQgdGhlIG1hcmdpbi1ib3R0b20gb2YgdGhlIG14X0NhbGxWaWV3Rm9yUm9vbV9SZXNpemVXcmFwcGVyXG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMucHJvcHMubWF4VmlkZW9IZWlnaHQgLSA4O1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X0NhbGxWaWV3Rm9yUm9vbVwiPlxuICAgICAgICAgICAgICAgIDxSZXNpemFibGVcbiAgICAgICAgICAgICAgICAgICAgbWluSGVpZ2h0PXszODB9XG4gICAgICAgICAgICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICBlbmFibGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wTGVmdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzaXplU3RhcnQ9e3RoaXMub25SZXNpemVTdGFydH1cbiAgICAgICAgICAgICAgICAgICAgb25SZXNpemU9e3RoaXMub25SZXNpemV9XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzaXplU3RvcD17dGhpcy5vblJlc2l6ZVN0b3B9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm14X0NhbGxWaWV3Rm9yUm9vbV9SZXNpemVXcmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2xhc3Nlcz17e2JvdHRvbTogXCJteF9DYWxsVmlld0ZvclJvb21fUmVzaXplSGFuZGxlXCJ9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhbGxWaWV3XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsPXt0aGlzLnN0YXRlLmNhbGx9XG4gICAgICAgICAgICAgICAgICAgICAgICBwaXBNb2RlPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1Jlc2l6YWJsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==