From 6e1e5f7ae4dcc5645a5412e17b36e5d95bf4f7c6 Mon Sep 17 00:00:00 2001 From: Florian Orben Date: Fri, 13 Nov 2015 23:05:08 +0100 Subject: only show advanced settings section if there are any pre-release features --- .../user_settings/user_settings_advanced.jsx | 105 +++++++++++---------- web/react/utils/constants.jsx | 3 +- web/react/utils/utils.jsx | 2 +- 3 files changed, 59 insertions(+), 51 deletions(-) (limited to 'web/react') diff --git a/web/react/components/user_settings/user_settings_advanced.jsx b/web/react/components/user_settings/user_settings_advanced.jsx index ae7f41020..cfb360152 100644 --- a/web/react/components/user_settings/user_settings_advanced.jsx +++ b/web/react/components/user_settings/user_settings_advanced.jsx @@ -32,7 +32,7 @@ export default class AdvancedSettingsDisplay extends React.Component { let enabledFeatures = 0; PreferenceStore.getPreferences(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS).forEach((setting) => { - if (setting.name.lastIndexOf('feature_enabled_') === 0) { + if (setting.name.lastIndexOf(Constants.FeatureTogglePrefix) === 0) { settings[setting.name] = setting.value; if (setting.value === 'true') { enabledFeatures++; @@ -55,11 +55,11 @@ export default class AdvancedSettingsDisplay extends React.Component { toggleFeature(feature, checked) { const settings = this.state.settings; - settings['feature_enabled_' + feature] = String(checked); + settings[Constants.FeatureTogglePrefix + feature] = String(checked); let enabledFeatures = 0; Object.keys(this.state.settings).forEach((setting) => { - if (setting.lastIndexOf('feature_enabled_') === 0 && this.state.settings[setting] === 'true') { + if (setting.lastIndexOf(Constants.FeatureTogglePrefix) === 0 && this.state.settings[setting] === 'true') { enabledFeatures++; } }); @@ -70,7 +70,7 @@ export default class AdvancedSettingsDisplay extends React.Component { saveEnabledFeatures() { const features = []; Object.keys(this.state.settings).forEach((setting) => { - if (setting.lastIndexOf('feature_enabled_') === 0) { + if (setting.lastIndexOf(Constants.FeatureTogglePrefix) === 0) { features.push(setting); } }); @@ -167,55 +167,62 @@ export default class AdvancedSettingsDisplay extends React.Component { } let previewFeaturesSection; - if (this.props.activeSection === 'advancedPreviewFeatures') { - const inputs = []; + let previewFeaturesSectionDivider; + if (this.state.preReleaseFeatures.length > 0) { + previewFeaturesSectionDivider = ( +
+ ); - this.state.preReleaseFeatures.forEach((feature) => { - inputs.push( -
-
- + if (this.props.activeSection === 'advancedPreviewFeatures') { + const inputs = []; + + this.state.preReleaseFeatures.forEach((feature) => { + inputs.push( +
+
+ +
+ ); + }); + + inputs.push( +
+
+ {'Check any pre-released features you\'d like to preview.'}
); - }); - inputs.push( -
-
- {'Check any pre-released features you\'d like to preview.'} -
- ); - - previewFeaturesSection = ( - { - this.updateSection(''); - e.preventDefault(); - }} - /> - ); - } else { - previewFeaturesSection = ( - this.props.updateSection('advancedPreviewFeatures')} - /> - ); + previewFeaturesSection = ( + { + this.updateSection(''); + e.preventDefault(); + }} + /> + ); + } else { + previewFeaturesSection = ( + this.props.updateSection('advancedPreviewFeatures')} + /> + ); + } } return ( @@ -245,7 +252,7 @@ export default class AdvancedSettingsDisplay extends React.Component {

{'Advanced Settings'}

{ctrlSendSection} -
+ {previewFeaturesSectionDivider} {previewFeaturesSection}
diff --git a/web/react/utils/constants.jsx b/web/react/utils/constants.jsx index 372e15556..31c2b940e 100644 --- a/web/react/utils/constants.jsx +++ b/web/react/utils/constants.jsx @@ -398,5 +398,6 @@ export default { }, NotificationPrefs: { MENTION: 'mention' - } + }, + FeatureTogglePrefix: 'feature_enabled_' }; diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx index 432cb05e0..58e570455 100644 --- a/web/react/utils/utils.jsx +++ b/web/react/utils/utils.jsx @@ -1223,5 +1223,5 @@ export function getPostTerm(post) { } export function featureToggle(feature) { - return PreferenceStore.getPreference(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'feature_enabled_' + feature, {value: 'false'}).value === 'true'; + return PreferenceStore.getPreference(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, Constants.FeatureTogglePrefix + feature, {value: 'false'}).value === 'true'; } -- cgit v1.2.3-1-g7c22