diff --git a/src/components/structures/RoomStatusBar.js b/src/components/structures/RoomStatusBar.js index 0389b606aa..0cb246973b 100644 --- a/src/components/structures/RoomStatusBar.js +++ b/src/components/structures/RoomStatusBar.js @@ -100,6 +100,10 @@ module.exports = React.createClass({ this._checkSize(); }, + componentDidMount: function() { + window.addEventListener('beforeunload', this.onPageUnload); + }, + componentDidUpdate: function() { this._checkSize(); }, @@ -111,6 +115,7 @@ module.exports = React.createClass({ client.removeListener("sync", this.onSyncStateChange); client.removeListener("RoomMember.typing", this.onRoomMemberTyping); } + window.removeEventListener('beforeunload', this.onPageUnload); }, onSyncStateChange: function(state, prevState) { @@ -128,6 +133,13 @@ module.exports = React.createClass({ }); }, + onPageUnload(event) { + if (this.props.hasActiveCall) { + return event.returnValue = + 'You seem to be in a call, are you sure you want to quit?'; + } + }, + // Check whether current size is greater than 0, if yes call props.onVisible _checkSize: function () { if (this.props.onVisible && this._getSize()) {