diff --git a/src/components/views/settings/tabs/user/GeneralUserSettingsTab.js b/src/components/views/settings/tabs/user/GeneralUserSettingsTab.js index b428ef51fa..7a8d123fcd 100644 --- a/src/components/views/settings/tabs/user/GeneralUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/GeneralUserSettingsTab.js @@ -46,11 +46,17 @@ export default class GeneralUserSettingsTab extends React.Component { language: languageHandler.getCurrentLanguage(), theme: SettingsStore.getValueAt(SettingLevel.ACCOUNT, "theme"), haveIdServer: Boolean(MatrixClientPeg.get().getIdentityServerUrl()), + serverRequiresIdServer: null, }; this.dispatcherRef = dis.register(this._onAction); } + async componentWillMount() { + const serverRequiresIdServer = await MatrixClientPeg.get().doesServerRequireIdServerParam(); + this.setState({serverRequiresIdServer}); + } + componentWillUnmount() { dis.unregister(this.dispatcherRef); } @@ -127,6 +133,7 @@ export default class GeneralUserSettingsTab extends React.Component { const ChangePassword = sdk.getComponent("views.settings.ChangePassword"); const EmailAddresses = sdk.getComponent("views.settings.account.EmailAddresses"); const PhoneNumbers = sdk.getComponent("views.settings.account.PhoneNumbers"); + const Spinner = sdk.getComponent("views.elements.Spinner"); const passwordChangeForm = ( <ChangePassword @@ -137,13 +144,19 @@ export default class GeneralUserSettingsTab extends React.Component { onFinished={this._onPasswordChanged} /> ); - const threepidSection = this.state.haveIdServer ? <div> - <span className="mx_SettingsTab_subheading">{_t("Email addresses")}</span> - <EmailAddresses /> + let threepidSection = null; - <span className="mx_SettingsTab_subheading">{_t("Phone numbers")}</span> - <PhoneNumbers /> - </div> : null; + if (this.state.haveIdServer || this.state.serverRequiresIdServer === false) { + threepidSection = <div> + <span className="mx_SettingsTab_subheading">{_t("Email addresses")}</span> + <EmailAddresses /> + + <span className="mx_SettingsTab_subheading">{_t("Phone numbers")}</span> + <PhoneNumbers /> + </div>; + } else if (this.state.serverRequiresIdServer === null) { + threepidSection = <Spinner />; + } return ( <div className="mx_SettingsTab_section mx_GeneralUserSettingsTab_accountSection">