diff --git a/src/AddThreepid.js b/src/AddThreepid.js index 8f19815210..f0781e26e9 100644 --- a/src/AddThreepid.js +++ b/src/AddThreepid.js @@ -20,6 +20,10 @@ import MatrixClientPeg from './MatrixClientPeg'; import { _t } from './languageHandler'; import IdentityAuthClient from './IdentityAuthClient'; +function getIdServerDomain() { + return MatrixClientPeg.get().idBaseUrl.split("://")[1]; +} + /** * Allows a user to add a third party identifier to their homeserver and, * optionally, the identity servers. @@ -155,7 +159,6 @@ export default class AddThreepid { * the request failed. */ async checkEmailLinkClicked() { - const identityServerDomain = MatrixClientPeg.get().idBaseUrl.split("://")[1]; try { if (await MatrixClientPeg.get().doesServerSupportSeparateAddAndBind()) { if (this.bind) { @@ -164,7 +167,7 @@ export default class AddThreepid { await MatrixClientPeg.get().bindThreePid({ sid: this.sessionId, client_secret: this.clientSecret, - id_server: identityServerDomain, + id_server: getIdServerDomain(), id_access_token: identityAccessToken, }); } else { @@ -177,7 +180,7 @@ export default class AddThreepid { await MatrixClientPeg.get().addThreePid({ sid: this.sessionId, client_secret: this.clientSecret, - id_server: identityServerDomain, + id_server: getIdServerDomain(), }, this.bind); } } catch (err) { @@ -221,13 +224,12 @@ export default class AddThreepid { throw result; } - const identityServerDomain = MatrixClientPeg.get().idBaseUrl.split("://")[1]; if (await MatrixClientPeg.get().doesServerSupportSeparateAddAndBind()) { if (this.bind) { await MatrixClientPeg.get().bindThreePid({ sid: this.sessionId, client_secret: this.clientSecret, - id_server: identityServerDomain, + id_server: getIdServerDomain(), id_access_token: await authClient.getAccessToken(), }); } else { @@ -240,7 +242,7 @@ export default class AddThreepid { await MatrixClientPeg.get().addThreePid({ sid: this.sessionId, client_secret: this.clientSecret, - id_server: identityServerDomain, + id_server: getIdServerDomain(), }, this.bind); } } diff --git a/src/components/views/settings/account/EmailAddresses.js b/src/components/views/settings/account/EmailAddresses.js index 30fc805f6d..382d2ee93b 100644 --- a/src/components/views/settings/account/EmailAddresses.js +++ b/src/components/views/settings/account/EmailAddresses.js @@ -193,8 +193,14 @@ export default class EmailAddresses extends React.Component { this.props.onEmailsChange(emails); }).catch((err) => { this.setState({continueDisabled: false}); - if (err.errcode !== 'M_THREEPID_AUTH_FAILED') { - const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); + const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); + if (err.errcode === 'M_THREEPID_AUTH_FAILED') { + Modal.createTrackedDialog("Email hasn't been verified yet", "", ErrorDialog, { + title: _t("Your email address hasn't been verified yet"), + description: _t("Click the link in the email you received to verify " + + "and then click continue again."), + }); + } else { console.error("Unable to verify email address: " + err); Modal.createTrackedDialog('Unable to verify email address', '', ErrorDialog, { title: _t("Unable to verify email address."), diff --git a/src/components/views/settings/discovery/EmailAddresses.js b/src/components/views/settings/discovery/EmailAddresses.js index a4fcd605fc..cc3d2d0dad 100644 --- a/src/components/views/settings/discovery/EmailAddresses.js +++ b/src/components/views/settings/discovery/EmailAddresses.js @@ -171,8 +171,14 @@ export class EmailAddress extends React.Component { }); } catch (err) { this.setState({ continueDisabled: false }); - if (err.errcode !== 'M_THREEPID_AUTH_FAILED') { - const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); + const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); + if (err.errcode === 'M_THREEPID_AUTH_FAILED') { + Modal.createTrackedDialog("E-mail hasn't been verified yet", "", ErrorDialog, { + title: _t("Your email address hasn't been verified yet"), + description: _t("Click the link in the email you received to verify " + + "and then click continue again."), + }); + } else { console.error("Unable to verify email address: " + err); Modal.createTrackedDialog('Unable to verify email address', '', ErrorDialog, { title: _t("Unable to verify email address."), diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index fb52e07eab..02d1d0e8d6 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -740,6 +740,8 @@ "Who can read history?": "Who can read history?", "Unable to revoke sharing for email address": "Unable to revoke sharing for email address", "Unable to share email address": "Unable to share email address", + "Your email address hasn't been verified yet": "Your email address hasn't been verified yet", + "Click the link in the email you received to verify and then click continue again.": "Click the link in the email you received to verify and then click continue again.", "Unable to verify email address.": "Unable to verify email address.", "Verify the link in your inbox": "Verify the link in your inbox", "Complete": "Complete",