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"
}