diff --git a/src/CallHandler.js b/src/CallHandler.js index 12b55c26..41833932 100644 --- a/src/CallHandler.js +++ b/src/CallHandler.js @@ -175,6 +175,10 @@ dis.register(function(payload) { } calls[payload.room_id].answer(); _setCallState(calls[payload.room_id], payload.room_id, "connected"); + dis.dispatch({ + action: "view_room", + room_id: payload.room_id + }); break; } }); diff --git a/src/controllers/molecules/MessageComposer.js b/src/controllers/molecules/MessageComposer.js index 34183083..495041a1 100644 --- a/src/controllers/molecules/MessageComposer.js +++ b/src/controllers/molecules/MessageComposer.js @@ -30,7 +30,6 @@ var KeyCode = { module.exports = { componentWillMount: function() { - this.dispatcherRef = dis.register(this.onAction); this.tabStruct = { completing: false, original: null, @@ -126,6 +125,7 @@ module.exports = { }, componentDidMount: function() { + this.dispatcherRef = dis.register(this.onAction); this.sentHistory.init( this.refs.textarea.getDOMNode(), this.props.room.roomId diff --git a/src/controllers/molecules/voip/CallView.js b/src/controllers/molecules/voip/CallView.js index 485782e9..a4c090a3 100644 --- a/src/controllers/molecules/voip/CallView.js +++ b/src/controllers/molecules/voip/CallView.js @@ -30,9 +30,9 @@ module.exports = { componentDidMount: function() { this.dispatcherRef = dis.register(this.onAction); - this.setState({ - call: null - }); + if (this.props.room) { + this.showCall(this.props.room.roomId); + } }, componentWillUnmount: function() { @@ -48,8 +48,12 @@ module.exports = { if (payload.action !== 'call_state') { return; } - var call = CallHandler.getCall(payload.room_id); - if (call && call.type === "video") { + this.showCall(payload.room_id); + }, + + showCall: function(roomId) { + var call = CallHandler.getCall(roomId); + if (call && call.type === "video" && call.state !== 'ended') { this.getVideoView().getLocalVideoElement().style.display = "initial"; this.getVideoView().getRemoteVideoElement().style.display = "initial"; call.setLocalVideoElement(this.getVideoView().getLocalVideoElement());