diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index 33e6499e21..b075db166f 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -139,6 +139,10 @@ module.exports = React.createClass({ return this.props.config.default_is_url || "https://vector.im"; }, + getEnableLabs() { + return this.props.config.enableLabs === undefined ? true : this.props.config.enableLabs; + }, + componentWillMount: function() { this.favicon = new Favico({animation: 'none'}); @@ -1060,7 +1064,12 @@ module.exports = React.createClass({ right_panel = break; case this.PageTypes.UserSettings: - page_element = + page_element = right_panel = break; case this.PageTypes.CreateRoom: diff --git a/src/components/structures/UserSettings.js b/src/components/structures/UserSettings.js index 89146229fa..8ee9cbd2dc 100644 --- a/src/components/structures/UserSettings.js +++ b/src/components/structures/UserSettings.js @@ -50,11 +50,15 @@ module.exports = React.createClass({ onClose: React.PropTypes.func, // The brand string given when creating email pushers brand: React.PropTypes.string, + + // True to show the 'labs' section of experimental features + enableLabs: React.PropTypes.boolean, }, getDefaultProps: function() { return { - onClose: function() {} + onClose: function() {}, + enableLabs: true, }; }, @@ -359,6 +363,8 @@ module.exports = React.createClass({ }, _renderLabs: function () { + if (!this.props.enableLabs) return false; + let features = LABS_FEATURES.map(feature => (