mirror of
https://github.com/element-hq/element-web
synced 2024-11-22 09:15:41 +03:00
Add CallHandler to handle call logic and make VideoViews/WaveformViews.
This commit is contained in:
parent
28cebab9a3
commit
7e30c0f47b
5 changed files with 87 additions and 17 deletions
36
skins/base/views/molecules/voip/CallHandler.js
Normal file
36
skins/base/views/molecules/voip/CallHandler.js
Normal file
|
@ -0,0 +1,36 @@
|
|||
/*
|
||||
Copyright 2015 OpenMarket Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var React = require('react');
|
||||
|
||||
var MatrixClientPeg = require("../../../../../src/MatrixClientPeg");
|
||||
var ComponentBroker = require('../../../../../src/ComponentBroker');
|
||||
var CallHandlerController = require(
|
||||
"../../../../../src/controllers/molecules/voip/CallHandler"
|
||||
);
|
||||
var VideoView = ComponentBroker.get('molecules/voip/VideoView');
|
||||
|
||||
module.exports = React.createClass({
|
||||
displayName: 'CallHandler',
|
||||
mixins: [CallHandlerController],
|
||||
render: function(){
|
||||
return (
|
||||
<div></div>
|
||||
);
|
||||
}
|
||||
});
|
|
@ -26,7 +26,7 @@ var classNames = require("classnames");
|
|||
var MessageTile = ComponentBroker.get('molecules/MessageTile');
|
||||
var RoomHeader = ComponentBroker.get('molecules/RoomHeader');
|
||||
var MessageComposer = ComponentBroker.get('molecules/MessageComposer');
|
||||
var VideoView = ComponentBroker.get("molecules/voip/VideoView");
|
||||
var CallHandler = ComponentBroker.get("molecules/voip/CallHandler");
|
||||
|
||||
var RoomViewController = require("../../../../src/controllers/organisms/RoomView");
|
||||
|
||||
|
@ -69,7 +69,7 @@ module.exports = React.createClass({
|
|||
<div className="mx_RoomView">
|
||||
<RoomHeader room={this.state.room} />
|
||||
<div className="mx_RoomView_auxPanel">
|
||||
<VideoView/>
|
||||
<CallHandler room={this.state.room}/>
|
||||
</div>
|
||||
<div ref="messageWrapper" className="mx_RoomView_messagePanel" onScroll={this.onMessageListScroll}>
|
||||
<div className="mx_RoomView_messageListWrapper">
|
||||
|
|
|
@ -96,6 +96,7 @@ require('../skins/base/views/molecules/RoomDropTarget');
|
|||
require('../skins/base/views/molecules/DirectoryMenu');
|
||||
require('../skins/base/views/atoms/voip/VideoFeed');
|
||||
require('../skins/base/views/molecules/voip/VideoView');
|
||||
require('../skins/base/views/molecules/voip/CallHandler');
|
||||
|
||||
|
||||
}
|
||||
|
|
48
src/controllers/molecules/voip/CallHandler.js
Normal file
48
src/controllers/molecules/voip/CallHandler.js
Normal file
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
Copyright 2015 OpenMarket Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var dis = require("../../../dispatcher");
|
||||
|
||||
module.exports = {
|
||||
|
||||
componentDidMount: function() {
|
||||
this.dispatcherRef = dis.register(this.onAction);
|
||||
},
|
||||
|
||||
componentWillUnmount: function() {
|
||||
dis.unregister(this.dispatcherRef);
|
||||
},
|
||||
|
||||
onAction: function(payload) {
|
||||
// if we were given a room_id to track, don't handle anything else.
|
||||
if (payload.room_id && this.props.room &&
|
||||
this.props.room.roomId !== payload.room_id) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (payload.action) {
|
||||
case 'place_call':
|
||||
console.log("Place %s call in %s", payload.type, payload.room_id);
|
||||
break;
|
||||
case 'incoming_call':
|
||||
console.log("Incoming call: %s", payload.call);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -19,20 +19,5 @@ limitations under the License.
|
|||
var dis = require("../../../dispatcher");
|
||||
|
||||
module.exports = {
|
||||
|
||||
componentDidMount: function() {
|
||||
this.dispatcherRef = dis.register(this.onAction);
|
||||
},
|
||||
|
||||
onAction: function(payload) {
|
||||
switch(payload.action) {
|
||||
case 'place_call':
|
||||
console.log("Place %s call in %s", payload.type, payload.room_id);
|
||||
break;
|
||||
case 'incoming_call':
|
||||
console.log("Incoming call: %s", payload.call);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue