From 736b6dac7af786d023a84f63435ecdc0c400110d Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Sat, 17 Sep 2016 00:54:56 +0100 Subject: [PATCH] default labs correctly :/ --- src/UserSettingsStore.js | 26 +++++++++++++++++++++-- src/components/structures/UserSettings.js | 22 ++----------------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/src/UserSettingsStore.js b/src/UserSettingsStore.js index 8ec0d9ba4a..aa55c6a258 100644 --- a/src/UserSettingsStore.js +++ b/src/UserSettingsStore.js @@ -24,6 +24,23 @@ var Notifier = require("./Notifier"); */ module.exports = { + LABS_FEATURES: [ + { + name: 'Rich Text Editor', + id: 'rich_text_editor', + default: false, + }, + { + name: 'End-to-End Encryption', + id: 'e2e_encryption', + default: true, + }, + { + name: 'Integration Management', + id: 'integration_management', + default: true, + }, + ], loadProfileInfo: function() { var cli = MatrixClientPeg.get(); @@ -142,9 +159,14 @@ module.exports = { return MatrixClientPeg.get().setAccountData("im.vector.web.settings", settings); }, - isFeatureEnabled: function(feature: string): ?boolean { + isFeatureEnabled: function(feature: string): boolean { if (localStorage.getItem(`mx_labs_feature_${feature}`) === null) { - return null; + for (var i = 0; i < this.LABS_FEATURES.length; i++) { + var f = this.LABS_FEATURES[i]; + if (f.id === feature) { + return f.default; + } + } } return localStorage.getItem(`mx_labs_feature_${feature}`) === 'true'; }, diff --git a/src/components/structures/UserSettings.js b/src/components/structures/UserSettings.js index 375fc3d1a9..61f544ea99 100644 --- a/src/components/structures/UserSettings.js +++ b/src/components/structures/UserSettings.js @@ -26,24 +26,6 @@ var GeminiScrollbar = require('react-gemini-scrollbar'); var Email = require('../../email'); var AddThreepid = require('../../AddThreepid'); -const LABS_FEATURES = [ - { - name: 'Rich Text Editor', - id: 'rich_text_editor', - default: false, - }, - { - name: 'End-to-End Encryption', - id: 'e2e_encryption', - default: true, - }, - { - name: 'Integration Management', - id: 'integration_management', - default: true, - }, -]; - // if this looks like a release, use the 'version' from package.json; else use // the git sha. const REACT_SDK_VERSION = @@ -379,13 +361,13 @@ module.exports = React.createClass({ // default to enabled if undefined if (this.props.enableLabs === false) return null; - let features = LABS_FEATURES.map(feature => ( + let features = UserSettingsStore.LABS_FEATURES.map(feature => (
{ UserSettingsStore.setFeatureEnabled(feature.id, e.target.checked); this.forceUpdate();