diff --git a/src/UserSettingsStore.js b/src/UserSettingsStore.js index 68a1ba229f..1d1924cd23 100644 --- a/src/UserSettingsStore.js +++ b/src/UserSettingsStore.js @@ -33,11 +33,17 @@ export default { // XXX: Always use default, ignore localStorage and remove from labs override: true, }, + { + name: "-", + id: 'feature_flair', + default: false, + }, ], // horrible but it works. The locality makes this somewhat more palatable. doTranslations: function() { this.LABS_FEATURES[0].name = _t("Matrix Apps"); + this.LABS_FEATURES[1].name = _t("Flair"); }, loadProfileInfo: function() { diff --git a/src/components/views/elements/Flair.js b/src/components/views/elements/Flair.js index 9abea0d202..52eff46f58 100644 --- a/src/components/views/elements/Flair.js +++ b/src/components/views/elements/Flair.js @@ -19,6 +19,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import {MatrixClient} from 'matrix-js-sdk'; +import UserSettingsStore from '../../../UserSettingsStore'; const BULK_REQUEST_DEBOUNCE_MS = 200; @@ -132,7 +133,9 @@ export default class Flair extends React.Component { componentWillMount() { this._unmounted = false; - this._generateAvatars(); + if (UserSettingsStore.isFeatureEnabled('feature_flair')) { + this._generateAvatars(); + } } async _getAvatarUrls(groups) { diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 63e86aff16..fc346fcdea 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -872,5 +872,6 @@ "Leave Group": "Leave Group", "Leave %(groupName)s?": "Leave %(groupName)s?", "%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s widget modified by %(senderName)s", - "Robot check is currently unavailable on desktop - please use a web browser": "Robot check is currently unavailable on desktop - please use a web browser" + "Robot check is currently unavailable on desktop - please use a web browser": "Robot check is currently unavailable on desktop - please use a web browser", + "Flair" }