matrix-react-sdk
Version:
SDK for matrix.org using React
130 lines (107 loc) • 13.8 kB
JavaScript
"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==