default labs correctly :/

This commit is contained in:
Matthew Hodgson 2016-09-17 00:54:56 +01:00
parent 96fd460cc8
commit 736b6dac7a
2 changed files with 26 additions and 22 deletions

View file

@ -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';
},

View file

@ -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 => (
<div key={feature.id} className="mx_UserSettings_toggle">
<input
type="checkbox"
id={feature.id}
name={feature.id}
defaultChecked={UserSettingsStore.isFeatureEnabled(feature.id) === null ? feature.default : UserSettingsStore.isFeatureEnabled(feature.id)}
defaultChecked={ UserSettingsStore.isFeatureEnabled(feature.id) }
onChange={e => {
UserSettingsStore.setFeatureEnabled(feature.id, e.target.checked);
this.forceUpdate();