From d3c84e25f5287f7793f9faa723bf88520d6a861a Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Wed, 16 Sep 2020 14:45:34 +0100
Subject: [PATCH] UI Feature Flag: Identity server
---
src/components/views/dialogs/InviteDialog.js | 85 ++++++++++++++-----
.../tabs/user/GeneralUserSettingsTab.js | 11 ++-
src/settings/Settings.ts | 4 +
src/settings/UIFeature.ts | 1 +
4 files changed, 76 insertions(+), 25 deletions(-)
diff --git a/src/components/views/dialogs/InviteDialog.js b/src/components/views/dialogs/InviteDialog.js
index 80d8f1fc2c..3347a1381f 100644
--- a/src/components/views/dialogs/InviteDialog.js
+++ b/src/components/views/dialogs/InviteDialog.js
@@ -38,6 +38,8 @@ import {Action} from "../../../dispatcher/actions";
import {DefaultTagID} from "../../../stores/room-list/models";
import RoomListStore from "../../../stores/room-list/RoomListStore";
import {CommunityPrototypeStore} from "../../../stores/CommunityPrototypeStore";
+import SettingsStore from "../../../settings/SettingsStore";
+import {UIFeature} from "../../../settings/UIFeature";
// we have a number of types defined from the Matrix spec which can't reasonably be altered here.
/* eslint-disable camelcase */
@@ -549,7 +551,7 @@ export default class InviteDialog extends React.PureComponent {
if (this.state.filterText.startsWith('@')) {
// Assume mxid
newMember = new DirectoryMember({user_id: this.state.filterText, display_name: null, avatar_url: null});
- } else {
+ } else if (SettingsStore.getValue(UIFeature.IdentityServer)) {
// Assume email
newMember = new ThreepidMember(this.state.filterText);
}
@@ -734,7 +736,7 @@ export default class InviteDialog extends React.PureComponent {
this.setState({tryingIdentityServer: true});
return;
}
- if (term.indexOf('@') > 0 && Email.looksValid(term)) {
+ if (term.indexOf('@') > 0 && Email.looksValid(term) && SettingsStore.getValue(UIFeature.IdentityServer)) {
// Start off by suggesting the plain email while we try and resolve it
// to a real account.
this.setState({
@@ -1037,7 +1039,9 @@ export default class InviteDialog extends React.PureComponent {
}
_renderIdentityServerWarning() {
- if (!this.state.tryingIdentityServer || this.state.canUseIdentityServer) {
+ if (!this.state.tryingIdentityServer || this.state.canUseIdentityServer ||
+ !SettingsStore.getValue(UIFeature.IdentityServer)
+ ) {
return null;
}
@@ -1086,22 +1090,41 @@ export default class InviteDialog extends React.PureComponent {
let buttonText;
let goButtonFn;
+ const identityServersEnabled = SettingsStore.getValue(UIFeature.IdentityServer);
+
const userId = MatrixClientPeg.get().getUserId();
if (this.props.kind === KIND_DM) {
title = _t("Direct Messages");
- helpText = _t(
+
+ if (identityServersEnabled) {
+ helpText = _t(
"Start a conversation with someone using their name, username (like